File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/APIOrderController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use DB;
use App\Library\UserLib;
use App\Models\User;
use App\Models\Product;
use App\Models\Customer;
use App\Models\PriceBookEntry;
use App\Models\Order;
use App\Models\OrderItems;
use App\Models\OrderStatus;
use App\Models\Countries;
use App\Models\PaymentTerm;
use App\Http\Controllers\APICommonController;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\Crypt;
class APIOrderController extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $userLib;
protected $dateFormat = 'dd-mm-yyyy';
protected $APICommonController;
protected $TeamList = array();
protected $myTeam = array();
public function __construct(UserLib $userLib, APICommonController $APICommonController)
{
$this->userLib = $userLib;
$this->APICommonController = $APICommonController;
}
//download pdf DownloadOrderPDF
//createOrder
//User Registration
public function createOrder(Request $request) {
//TODO What is device_token
$data = $request->json()->all();
$OrderId = $this->userLib->useridGenrator();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$OrderNo = $data['OrderNo'] ? $data['OrderNo'] : '';
$Order = Order::select('*')
->where('OrderNo', 'like', $OrderNo)
->get();
if ($Order->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Order No already exist",
'ResponseCode' => "206",
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
//get user data
if(count($data['OrderItems']) > 0)
{
$OrderItems = $data['OrderItems'];
$CustomerId = $data['CustomerId'];
if ($CustomerId) {
$Customer = Customer::where('CustomerId', '=', $CustomerId)->get()->first();
$CustomerCode = $Customer->CustomerCode;
$CustomerName = $Customer->CustomerName;
$customerName = strtoupper($CustomerName);
// $OrderNo = 'ODR-'.substr($customerName, 0, 4).$this->userLib->otpGenrator();;
$OrderNo = 'ODR-' . $CustomerCode . '-' . time();
$data['OrderNo'] = $OrderNo;
$data['CustomerName'] = $CustomerName;
}
$data['OrderStatusId'] = 'AUEFg65834sd2';
$data['OrderId'] = $OrderId;
$data['Status'] = '1';
$data['Approved'] = isset($data['Approved']) ? $data['Approved'] : '9';
$data['AssignTo'] = $UserId;
if($UserId){
$user_details = User::select('tbl_user.*')
->where('tbl_user.UserId', $UserId)
->get()->first();
$data['CreatedByName'] = $user_details->FirstName.' '.$user_details->LastName;
$data['UpdatedByName'] = $user_details->FirstName.' '.$user_details->LastName;
}
$data['Created_at'] = date('Y-m-d H:i:s',time());
$data['Updated_at'] = date('Y-m-d H:i:s',time());
unset($data['OrderItems']);
unset($data['id']);
$order_insert = Order::insert($data);
if($order_insert)
{
$AmountWithGST = isset($data['AmountWithGST']) ? $data['AmountWithGST'] : '';
$BillingCity = isset($data['BillingCity']) ? $data['BillingCity'] : '';
$BillingCountry = isset($data['BillingCountry']) ? $data['BillingCountry'] : '';
$BillingPostalCode = isset($data['BillingPostalCode']) ? $data['BillingPostalCode'] : '';
$BillingState = isset($data['BillingState']) ? $data['BillingState'] : '';
$BillingStreetAddress = isset($data['BillingStreetAddress']) ? $data['BillingStreetAddress'] : '';
$ShippingCity = isset($data['ShippingCity']) ? $data['ShippingCity'] : '';
$ShippingCountry = isset($data['ShippingCountry']) ? $data['ShippingCountry'] : '';
$ShippingPostalCode = isset($data['ShippingPostalCode']) ? $data['ShippingPostalCode'] : '';
$ShippingState = isset($data['ShippingState']) ? $data['ShippingState'] : '';
$ShippingStreetAddress = isset($data['ShippingStreetAddress']) ? $data['ShippingStreetAddress'] : '';
$CountOrderItem = isset($data['CountOrderItem']) ? $data['CountOrderItem'] : '';
$CustomerId = isset($data['CustomerId']) ? $data['CustomerId'] : '';
$DeliveryMethod = isset($data['DeliveryMethod']) ? $data['DeliveryMethod'] : '';
$FullFilledBy = isset($data['FullFilledBy']) ? $data['FullFilledBy'] : '';
$GrandTotal = isset($data['GrandTotal']) ? $data['GrandTotal'] : '';
$OrderBookDate = isset($data['OrderBookDate']) ? $data['OrderBookDate'] : '';
$OrderDeliveryDate = isset($data['OrderDeliveryDate']) ? $data['OrderDeliveryDate'] : '';
$OrderNo = isset($data['OrderNo']) ? $data['OrderNo'] : '';
$OrderNotes = isset($data['OrderNotes']) ? $data['OrderNotes'] : '';
$OrderSignature = isset($data['OrderSignature']) ? $data['OrderSignature'] : '';
$OrderStatusId = isset($data['OrderStatusId']) ? $data['OrderStatusId'] : '';
$PaymentTerms = isset($data['PaymentTerms']) ? $data['PaymentTerms'] : '';
$ReturnReason = isset($data['ReturnReason']) ? $data['ReturnReason'] : '';
$SubTotal = isset($data['SubTotal']) ? $data['SubTotal'] : '';
$Supplier = isset($data['Supplier']) ? $data['Supplier'] : '';
$TotalAmount = isset($data['TotalAmount']) ? $data['TotalAmount'] : '';
$TotalDiscount = isset($data['TotalDiscount']) ? $data['TotalDiscount'] : '';
$TotalGST = isset($data['TotalGST']) ? $data['TotalGST'] : '';
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '';
$IsReturn = isset($data['IsReturn']) ? $data['IsReturn'] : '';
$Created_at = date('Y-m-d H:i:s',time());
$EffectiveDate = date('Y-m-d H:i:s',time());
$Status = '1';
// $Approved = isset($data['Approved']) ? $data['Approved'] : '';
// $ApprovedBy = isset($data['ApprovedBy']) ? $data['ApprovedBy'] : '';
// $Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
// $Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
$OrderQuery = "insert into salesforce.Order (Order_Id__c,Amount_With_GST__c,BillingCity,BillingCountry,BillingPostalCode,BillingState,BillingStreet,ShippingCity,ShippingCountry,ShippingPostalCode,ShippingState,ShippingStreet,Count_Order_Item__c,Customer_Id__c,Delivery_Method__c,FullFilled_By__c,Grand_Total__c,Order_Book_Date__c,Order_Delivery_Date__c,Name,Order_Notes__c,Order_Signature__c, Order_Status_Id__c,Payment_Terms__c,Return_Reason__c,Sub_Total__c,Supplier__c,Total_Amount__c,Total_Discount__c,Total_GST__c,Is_Deleted__c,Is_Return__c,CreatedDate,EffectiveDate,Status) values ('$OrderId','$AmountWithGST','$BillingCity','$BillingCountry','$BillingPostalCode','$BillingState','$BillingStreetAddress','$ShippingCity','$ShippingCountry','$ShippingPostalCode','$ShippingState','$ShippingStreetAddress','$CountOrderItem','$CustomerId','$DeliveryMethod','$FullFilledBy','$GrandTotal','$OrderBookDate','$OrderDeliveryDate','$OrderNo','$OrderNotes','$OrderSignature','$OrderStatusId','$PaymentTerms','$ReturnReason','$SubTotal','$Supplier','$TotalAmount','$TotalDiscount','$TotalGST','$IsDeleted','$IsReturn','$Created_at','$EffectiveDate',$Status)";
$Insert_OrderSF = DB::connection('pgsql')->insert($OrderQuery);
if($Insert_OrderSF)
{
$p=0;
// sleep(10);
for($i =0; $i < count($OrderItems); $i++)
{
$OrderItemId = $this->userLib->useridGenrator();
$OrderItemData = $OrderItems[$i];
$OrderItemData['OrderItemId'] = $OrderItemId;
$OrderItemData['OrderId'] = $OrderId;
$OrderItemData['Status'] = '1';
$OrderItemData['Created_at'] = date('Y-m-d H:i:s',time());
$OrderItemData['Updated_at'] = date('Y-m-d H:i:s',time());
$OrderItemData['ModifiedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastModifiedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastReferencedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastViewedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['CreatedDate'] = date('Y-m-d H:i:s',time());
unset($OrderItemData['id']);
$order_item_insert = OrderItems::insert($OrderItemData);
if($order_item_insert)
{
$p = $p + 1;
// $ProductId = isset($OrderItemData['ProductId']) ? $OrderItemData['ProductId'] : '';
// $ListPrice = isset($OrderItemData['ListPrice']) ? $OrderItemData['ListPrice'] : '';
// $SalePrice = isset($OrderItemData['SalePrice']) ? $OrderItemData['SalePrice'] : '';
// $Quantity = isset($OrderItemData['Quantity']) ? $OrderItemData['Quantity'] : '';
// $TotalPrice = isset($OrderItemData['TotalPrice']) ? $OrderItemData['TotalPrice'] : '';
// $DiscountType = isset($OrderItemData['DiscountType']) ? $OrderItemData['DiscountType'] : '';
// $Discount = isset($OrderItemData['Discount']) ? $OrderItemData['Discount'] : '';
// $DiscountInRupees = isset($OrderItemData['DiscountInRupees']) ? $OrderItemData['DiscountInRupees'] : '';
// $SubTotal = isset($OrderItemData['SubTotal']) ? $OrderItemData['SubTotal'] : '';
// $GSTInRupees = isset($OrderItemData['GSTInRupees']) ? $OrderItemData['GSTInRupees'] : '';
// $AmountWithGST = isset($OrderItemData['AmountWithGST']) ? $OrderItemData['AmountWithGST'] : '';
// $GstSlab = isset($OrderItemData['GstSlab']) ? $OrderItemData['GstSlab'] : '';
// $Name = isset($OrderItemData['Name']) ? $OrderItemData['Name'] : '';
// $PriceBookEntry = isset($OrderItemData['PriceBookEntry']) ? $OrderItemData['PriceBookEntry'] : '';
// $ProductFamily = isset($OrderItemData['ProductFamily']) ? $OrderItemData['ProductFamily'] : '';
// $Status = isset($OrderItemData['Status']) ? $OrderItemData['Status'] : '';
// $IsDeleted = isset($OrderItemData['IsDeleted']) ? $OrderItemData['IsDeleted'] : '';
// $Created_by = isset($OrderItemData['Created_by']) ? $OrderItemData['Created_by'] : '';
// $CreatedDate = date('Y-m-d H:i:s',time());
// $Updated_by = isset($OrderItemData['Updated_by']) ? $OrderItemData['Updated_by'] : '';
// $OrderItemQuery = "insert into salesforce.OrderItem (External_Order_Item_Id__c,Order_Id__c,Product_Id__c,List_Price__c,Sale_Price__c,Quantity,Total_Price__c,Discount_Type__c,Discount__c,Discount_In_Rupees__c,Sub_Total__c,GST_In_Rupees__c,Amount_With_GST__c,Gst_Slab__c,Name__c,Price_Book_Entry__c,Product_Family__c,Status__c,IsDeleted,Created_By_Id__c,CreatedDate,Updated_By__c,UnitPrice) values ('$OrderItemId','$OrderId','$ProductId','$ListPrice','$SalePrice','$Quantity','$TotalPrice','$DiscountType','$Discount','$DiscountInRupees','$SubTotal','$GSTInRupees','$AmountWithGST','$GstSlab','$Name','$PriceBookEntry','$ProductFamily','$Status','$IsDeleted','$Created_by','$CreatedDate','$Updated_by','$ListPrice')";
// //sleep(5);
// DB::connection('pgsql')->insert($OrderItemQuery);
}
}
}
if(count($OrderItems) == $p)
{
$Order = Order::select('*')
->where('OrderId', 'like', $OrderId)
->get();
if ($Order->count() > 0)
{
$OrderData = $Order->first();
$OrderItems = OrderItems::select('*')
->where('OrderId', '=', $OrderId)
->get();
$OrderData->OrderItems = array();
if ($OrderItems->count() > 0)
{
$OrderData->OrderItems = $OrderItems;
}
$response = [
'Success' => true,
'ResponseMessage' => "Order has been created",
'ResponseCode' => "200",
'Order' => $OrderData,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'OrderQuery' => $OrderQuery
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "202",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Order items has not found",
'ResponseCode' => "202",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//Order update
public function updateOrder(Request $request) {
//TODO What is device_token
$data = $request->json()->all();
$OrderId = $this->userLib->useridGenrator();
$CreatedDate = date('Y-m-d H:i:s',time());
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$OrderNo = $data['OrderNo'] ? $data['OrderNo'] : '';
$OrderId = $data['OrderId'] ? $data['OrderId'] : '';
$Order = Order::select('*')
->where('OrderId', 'like', $OrderId)
->get();
if ($Order->count() == 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Order not exist",
'ResponseCode' => "206",
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
//get user data
if(count($data['OrderItems']) > 0)
{
$OrderItems = $data['OrderItems'];
$CustomerId = $data['CustomerId'];
$OrderBookDate = isset($data['OrderBookDate']) ? $data['OrderBookDate'] : '';
if($OrderBookDate)
{
$data['OrderBookDate'] = date('Y-m-d',strtotime($OrderBookDate));
}
$OrderDeliveryDate = isset($data['OrderDeliveryDate']) ? $data['OrderDeliveryDate'] : '';
if($OrderDeliveryDate)
{
$data['OrderDeliveryDate'] = date('Y-m-d',strtotime($OrderDeliveryDate));
}
$data['Updated_by'] = $UserId;
if($UserId){
$user_details = User::select('tbl_user.*')
->where('tbl_user.UserId', $UserId)
->get()->first();
$data['UpdatedByName'] = $user_details->FirstName.' '.$user_details->LastName;
}
$data['Updated_at'] = $CreatedDate;
$data['Approved'] = isset($data['Approved']) ? $data['Approved'] : '9';
unset($data['OrderItems']);
unset($data['DeliveryFormatedDate']);
unset($data['id']);
$order_update = Order::where('OrderId',$OrderId)->update($data);
if($order_update)
{
$AmountWithGST = isset($data['AmountWithGST']) ? $data['AmountWithGST'] : '';
$BillingCity = isset($data['BillingCity']) ? $data['BillingCity'] : '';
$BillingCountry = isset($data['BillingCountry']) ? $data['BillingCountry'] : '';
$BillingPostalCode = isset($data['BillingPostalCode']) ? $data['BillingPostalCode'] : '';
$BillingState = isset($data['BillingState']) ? $data['BillingState'] : '';
$BillingStreetAddress = isset($data['BillingStreetAddress']) ? $data['BillingStreetAddress'] : '';
$ShippingCity = isset($data['ShippingCity']) ? $data['ShippingCity'] : '';
$ShippingCountry = isset($data['ShippingCountry']) ? $data['ShippingCountry'] : '';
$ShippingPostalCode = isset($data['ShippingPostalCode']) ? $data['ShippingPostalCode'] : '';
$ShippingState = isset($data['ShippingState']) ? $data['ShippingState'] : '';
$ShippingStreetAddress = isset($data['ShippingStreetAddress']) ? $data['ShippingStreetAddress'] : '';
$CountOrderItem = isset($data['CountOrderItem']) ? $data['CountOrderItem'] : '';
$CustomerId = isset($data['CustomerId']) ? $data['CustomerId'] : '';
$DeliveryMethod = isset($data['DeliveryMethod']) ? $data['DeliveryMethod'] : '';
$FullFilledBy = isset($data['FullFilledBy']) ? $data['FullFilledBy'] : '';
$GrandTotal = isset($data['GrandTotal']) ? $data['GrandTotal'] : '';
$OrderBookDate = isset($data['OrderBookDate']) ? $data['OrderBookDate'] : '';
$OrderDeliveryDate = isset($data['OrderDeliveryDate']) ? $data['OrderDeliveryDate'] : '';
$OrderNo = isset($data['OrderNo']) ? $data['OrderNo'] : '';
$OrderNotes = isset($data['OrderNotes']) ? $data['OrderNotes'] : '';
$OrderSignature = isset($data['OrderSignature']) ? $data['OrderSignature'] : '';
$OrderStatusId = isset($data['OrderStatusId']) ? $data['OrderStatusId'] : '';
$PaymentTerms = isset($data['PaymentTerms']) ? $data['PaymentTerms'] : '';
$ReturnReason = isset($data['ReturnReason']) ? $data['ReturnReason'] : '';
$SubTotal = isset($data['SubTotal']) ? $data['SubTotal'] : '';
$Supplier = isset($data['Supplier']) ? $data['Supplier'] : '';
$TotalAmount = isset($data['TotalAmount']) ? $data['TotalAmount'] : '';
$TotalDiscount = isset($data['TotalDiscount']) ? $data['TotalDiscount'] : '';
$TotalGST = isset($data['TotalGST']) ? $data['TotalGST'] : '';
// $Approved = isset($data['Approved']) ? $data['Approved'] : '';
// $ApprovedBy = isset($data['ApprovedBy']) ? $data['ApprovedBy'] : '';
// $Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
// $Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
$OrderQuery = "update salesforce.Order set Amount_With_GST__c='$AmountWithGST',BillingCity='$BillingCity',BillingCountry='$BillingCountry',BillingPostalCode='$BillingPostalCode',BillingState='$BillingState',BillingStreet='$BillingStreetAddress',ShippingCity='$ShippingCity',ShippingCountry='$ShippingCountry',ShippingPostalCode='$ShippingPostalCode',ShippingState='$ShippingState',ShippingStreet='$ShippingStreetAddress',Count_Order_Item__c='$CountOrderItem',Customer_Id__c='$CustomerId',Delivery_Method__c='$DeliveryMethod',FullFilled_By__c='$FullFilledBy',Grand_Total__c='$GrandTotal',Order_Book_Date__c='$OrderBookDate',Order_Delivery_Date__c='$OrderDeliveryDate',Order_No__c='$OrderNo',Order_Notes__c='$OrderNotes',Order_Signature__c='$OrderSignature', Order_Status_Id__c='$OrderStatusId',Payment_Terms__c='$PaymentTerms',Return_Reason__c='$ReturnReason',Sub_Total__c='$SubTotal',Supplier__c='$Supplier',Total_Amount__c='$TotalAmount',Total_Discount__c='$TotalDiscount',Total_GST__c='$TotalGST' where Order_Id__c='$OrderId'";
DB::connection('pgsql')->update($OrderQuery);
$p=0;
//return response()->json($OrderItems);
for($i =0; $i < count($OrderItems); $i++)
{
$OrderItemData = $OrderItems[$i];
$OrderItemId = $OrderItemData['OrderItemId'];
if($OrderItemId)
{
$OrderItemData['Updated_by'] = $UserId;
$OrderItemData['Updated_at'] = $CreatedDate;
$OrderItemData['ModifiedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastModifiedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastReferencedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastViewedDate'] = date('Y-m-d H:i:s',time());
$order_item_insert = OrderItems::where('OrderId',$OrderId)->where('OrderItemId',$OrderItemId)->update($OrderItemData);
if($order_item_insert)
{
$p = $p + 1;
}
$ProductId = isset($OrderItemData['ProductId']) ? $OrderItemData['ProductId'] : '';
$ListPrice = isset($OrderItemData['ListPrice']) ? $OrderItemData['ListPrice'] : '';
$SalePrice = isset($OrderItemData['SalePrice']) ? $OrderItemData['SalePrice'] : '';
$Quantity = isset($OrderItemData['Quantity']) ? $OrderItemData['Quantity'] : '';
$TotalPrice = isset($OrderItemData['TotalPrice']) ? $OrderItemData['TotalPrice'] : '';
$DiscountType = isset($OrderItemData['DiscountType']) ? $OrderItemData['DiscountType'] : '';
$Discount = isset($OrderItemData['Discount']) ? $OrderItemData['Discount'] : '';
$DiscountInRupees = isset($OrderItemData['DiscountInRupees']) ? $OrderItemData['DiscountInRupees'] : '';
$SubTotal = isset($OrderItemData['SubTotal']) ? $OrderItemData['SubTotal'] : '';
$GSTInRupees = isset($OrderItemData['GSTInRupees']) ? $OrderItemData['GSTInRupees'] : '';
$AmountWithGST = isset($OrderItemData['AmountWithGST']) ? $OrderItemData['AmountWithGST'] : '';
$GstSlab = isset($OrderItemData['GstSlab']) ? $OrderItemData['GstSlab'] : '';
$Name = isset($OrderItemData['Name']) ? $OrderItemData['Name'] : '';
$PriceBookEntry = isset($OrderItemData['PriceBookEntry']) ? $OrderItemData['PriceBookEntry'] : '';
$ProductFamily = isset($OrderItemData['ProductFamily']) ? $OrderItemData['ProductFamily'] : '';
$Status = isset($OrderItemData['Status']) ? $OrderItemData['Status'] : '';
$IsDeleted = isset($OrderItemData['IsDeleted']) ? $OrderItemData['IsDeleted'] : '';
$UpdatedDate = date('Y-m-d H:i:s',time());
$Updated_by = isset($OrderItemData['Updated_by']) ? $OrderItemData['Updated_by'] : '';
$OrderItemQuery = "update salesforce.OrderItem set Product_Id__c='$ProductId',List_Price__c='$ListPrice',UnitPrice='$ListPrice',Sale_Price__c='$SalePrice',Quantity='$Quantity',Total_Price__c='$TotalPrice',Discount_Type__c='$DiscountType',Discount__c='$Discount',Discount_In_Rupees__c='$DiscountInRupees',Sub_Total__c='$SubTotal',GST_In_Rupees__c='$GSTInRupees',Amount_With_GST__c='$AmountWithGST',Gst_Slab__c='$GstSlab',Name__c='$Name',Price_Book_Entry__c='$PriceBookEntry',Product_Family__c='$ProductFamily',Status__c='$Status',IsDeleted='$IsDeleted',Updated_At__c='$UpdatedDate',Updated_By__c='$Updated_by' where External_Order_Item_Id__c='$OrderItemId' and Order_Id__c='$OrderId'";
DB::connection('pgsql')->update($OrderItemQuery);
}
else{
$OrderItemId = $this->userLib->useridGenrator();
$OrderItemData = $OrderItems[$i];
$OrderItemData['OrderItemId'] = $OrderItemId;
$OrderItemData['OrderId'] = $OrderId;
$OrderItemData['Status'] = '1';
$OrderItemData['Created_at'] = date('Y-m-d H:i:s',time());
$OrderItemData['Updated_at'] = date('Y-m-d H:i:s',time());
$OrderItemData['ModifiedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastModifiedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastReferencedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['LastViewedDate'] = date('Y-m-d H:i:s',time());
$OrderItemData['CreatedDate'] = date('Y-m-d H:i:s',time());
unset($OrderItemData['id']);
$order_item_insert = OrderItems::insert($OrderItemData);
if($order_item_insert)
{
$p = $p + 1;
}
// $ProductId = isset($OrderItemData['ProductId']) ? $OrderItemData['ProductId'] : '';
// $ListPrice = isset($OrderItemData['ListPrice']) ? $OrderItemData['ListPrice'] : '';
// $SalePrice = isset($OrderItemData['SalePrice']) ? $OrderItemData['SalePrice'] : '';
// $Quantity = isset($OrderItemData['Quantity']) ? $OrderItemData['Quantity'] : '';
// $TotalPrice = isset($OrderItemData['TotalPrice']) ? $OrderItemData['TotalPrice'] : '';
// $DiscountType = isset($OrderItemData['DiscountType']) ? $OrderItemData['DiscountType'] : '';
// $Discount = isset($OrderItemData['Discount']) ? $OrderItemData['Discount'] : '';
// $DiscountInRupees = isset($OrderItemData['DiscountInRupees']) ? $OrderItemData['DiscountInRupees'] : '';
// $SubTotal = isset($OrderItemData['SubTotal']) ? $OrderItemData['SubTotal'] : '';
// $GSTInRupees = isset($OrderItemData['GSTInRupees']) ? $OrderItemData['GSTInRupees'] : '';
// $AmountWithGST = isset($OrderItemData['AmountWithGST']) ? $OrderItemData['AmountWithGST'] : '';
// $GstSlab = isset($OrderItemData['GstSlab']) ? $OrderItemData['GstSlab'] : '';
// $Name = isset($OrderItemData['Name']) ? $OrderItemData['Name'] : '';
// $PriceBookEntry = isset($OrderItemData['PriceBookEntry']) ? $OrderItemData['PriceBookEntry'] : '';
// $ProductFamily = isset($OrderItemData['ProductFamily']) ? $OrderItemData['ProductFamily'] : '';
// $Status = isset($OrderItemData['Status']) ? $OrderItemData['Status'] : '';
// $IsDeleted = isset($OrderItemData['IsDeleted']) ? $OrderItemData['IsDeleted'] : '';
// $Created_by = isset($OrderItemData['Created_by']) ? $OrderItemData['Created_by'] : '';
// $CreatedDate = date('Y-m-d H:i:s',time());
// $Updated_by = isset($OrderItemData['Updated_by']) ? $OrderItemData['Updated_by'] : '';
// $OrderItemQuery = "insert into salesforce.OrderItem (External_Order_Item_Id__c,Order_Id__c,Product_Id__c,List_Price__c,Sale_Price__c,Quantity,Total_Price__c,Discount_Type__c,Discount__c,Discount_In_Rupees__c,Sub_Total__c,GST_In_Rupees__c,Amount_With_GST__c,Gst_Slab__c,Name__c,Price_Book_Entry__c,Product_Family__c,Status__c,IsDeleted,Created_By_Id__c,CreatedDate,Updated_By__c) values ('$OrderItemId','$OrderId','$ProductId','$ListPrice','$SalePrice','$Quantity','$TotalPrice','$DiscountType','$Discount','$DiscountInRupees','$SubTotal','$GSTInRupees','$AmountWithGST','$GstSlab','$Name','$PriceBookEntry','$ProductFamily','$Status','$IsDeleted','$Created_by','$CreatedDate','$Updated_by')";
// DB::connection('pgsql')->insert($OrderItemQuery);
}
}
if(count($OrderItems))
{
$Order = Order::select('*')
->where('OrderId', 'like', $OrderId)
->where('IsDeleted', '=', '0')
->get();
if ($Order->count() > 0)
{
$OrderData = $Order->first();
$OrderItems = OrderItems::select('*')
->where('OrderId', '=', $OrderId)
->where('IsDeleted', '=', '0')
->get();
$OrderData->OrderItems = array();
if ($OrderItems->count() > 0)
{
$OrderData->OrderItems = $OrderItems;
}
$response = [
'Success' => true,
'ResponseMessage' => "Order has been updated",
'ResponseCode' => "200",
'Order' => $OrderData,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'OrderQuery' => $OrderQuery,
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'validate'=>count($OrderItems) ." == ". $p,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
else
{
// fail
$response = [
'Success' => false,
'validate'=>count($OrderItems) ." == ". $p,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "202",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Order items has not found",
'ResponseCode' => "202",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//End of Order Update
//getOrderDetails
public function getOrderDetails(Request $request, $OrderId) {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
//check validation
if (!$OrderId)
{
$response = [
'Success' => false,
'ResponseMessage' => "OrderId is required!",
'ResponseCode' => '220',
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$Order = Order::select('*')
->where('OrderId', 'like', $OrderId)
->where('IsDeleted', '=', '0')
->get();
foreach ($Order as $key => $OrderValue)
{
$CustomerId = $OrderValue->CustomerId;
$custmer = Customer::where('CustomerId', $CustomerId)->get();
if ($custmer->count() > 0)
{ //email is not exist
$custmer = $custmer->first();
$CustomerName = $custmer->CustomerName;
}
$OrderValue['CustomerName'] = $CustomerName;
}
$pdf_url = '';
if ($Order->count() > 0)
{
$OrderData = $Order->first();
$OrderId = $OrderData->OrderId;
if($OrderId)
{
// $curl = curl_init();
// $baseurl = env('APP_URL');
// $api_url = "http://172.105.42.62/fb-order-invoice/?invoice_pdf=$baseurl/order-invoice-mobile/".$OrderId;
// curl_setopt_array($curl, array(
// CURLOPT_URL => $api_url,
// CURLOPT_RETURNTRANSFER => true,
// CURLOPT_ENCODING => '',
// CURLOPT_MAXREDIRS => 10,
// CURLOPT_TIMEOUT => 0,
// CURLOPT_FOLLOWLOCATION => true,
// CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
// CURLOPT_CUSTOMREQUEST => 'GET',
// CURLOPT_HTTPHEADER => array(),
// ));
// $response = curl_exec($curl);
// curl_close($curl);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://172.105.42.62/fb-order-invoice/curl.php?OrderId='.$OrderId,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Cookie: private_content_version=3f7abce738dd8b52d0dcb8653bfe8e93; mage-messages=%5B%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%5D'
),
));
$response = curl_exec($curl);
curl_close($curl);
$api_response = json_decode($response,true);
$pdf_url = isset($api_response['pdf_url']) ? $api_response['pdf_url'] : '';
}
$OrderData->InvoicePDFURL = $pdf_url;
$OrderData->OrderBookDate = date('d-m-Y', strtotime($OrderData->OrderBookDate));
$OrderData->OrderDeliveryDate = date('d-m-Y', strtotime($OrderData->OrderDeliveryDate));
$CreatedFormatedDate = $OrderData->OrderBookDate;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$OrderData->CreatedFormatedDate = $CreatedFormatedDate;
$DeliveryFormatedDate = $OrderData->OrderDeliveryDate;
$DeliveryFormatedDate = date("j M Y",strtotime($DeliveryFormatedDate));
$OrderData->DeliveryFormatedDate = $DeliveryFormatedDate;
$OrderItems = OrderItems::select('*')
->where('OrderId', '=', $OrderId)
->where('IsDeleted', '=', '0')
->where('Quantity', '!=', '0')
->get();
$OrderData->OrderItems = array();
if ($OrderItems->count() > 0)
{
$OrderData->OrderItems = $OrderItems;
}
$OrderData->ShippingCountryName = '';
if($OrderData->ShippingCountry)
{
$countries = Countries::select('country_name')
->where('id', $OrderData->ShippingCountry)
->get()->first();
$OrderData->ShippingCountryName = $countries->country_name;
}
$OrderData->BillingCountryName = '';
if($OrderData->BillingCountry)
{
$countries = Countries::select('country_name')
->where('id', $OrderData->BillingCountry)
->get()->first();
$OrderData->BillingCountryName = $countries->country_name;
}
$OrderData->OrderStatusTitle = '';
if($OrderData->OrderStatusId)
{
$OrderStatus = OrderStatus::select('*')
->where('OrderStatusId', '=', $OrderData->OrderStatusId)
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->get();
if ($OrderStatus->count() > 0)
{ //email is not exist
$OrderStatus = $OrderStatus->first();
$OrderData->OrderStatusTitle = $OrderStatus->OrderStatusTitle;
}
}
$OrderData->PaymentTermTitle = '';
if($OrderData->PaymentTerms)
{
$PaymentTermDetails = PaymentTerm::select('*')
->where('PaymentTermId', '=', $OrderData->PaymentTerms)
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->get();
if ($OrderStatus->count() > 0)
{ //email is not exist
$PaymentTermData = $PaymentTermDetails->first();
$OrderData->PaymentTermTitle = $PaymentTermData->Name;
}
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Order' => $OrderData,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Order does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
public function getTodayOrderList(Request $request, $CustomerId='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$CustomerName='';
$today = date('Y-m-d',time());
if($CustomerId)
{
$Order = Order::select('*')
->where('CustomerId', 'like', $CustomerId)
->where('IsDeleted', '=', 0)
->where('Created_at', 'like', '%'. $today.'%')
->where('Created_by',$UserId)
->orderBy('id', 'desc')
->get();
}
else
{
$Order = Customer::select('tbl_order.*')
->leftJoin('tbl_order', 'tbl_customer.CustomerId', '=', 'tbl_order.CustomerId')
->where('tbl_customer.IsDeleted', '=', '0')
->where('tbl_order.IsDeleted', '=', '0')
->where('tbl_order.Created_at', 'like', '%'. $today.'%')
->where('tbl_order.Created_by',$UserId)
->orderBy('tbl_order.id', 'desc')
->get();
// $Order = Order::select('*')
// ->where('IsDeleted', '=', 0)
// ->where('Created_at', 'like', '%'. $today.'%')
// ->orderBy('id', 'desc')
// ->get();
}
foreach ($Order as $key => $OrderValue)
{
$CustomerId = $OrderValue->CustomerId;
$OrderStatusId = $OrderValue->OrderStatusId;
$OrderBookDate = date('d-m-Y', strtotime($OrderValue->OrderBookDate));
$OrderDeliveryDate = date('d-m-Y', strtotime($OrderValue->OrderDeliveryDate));
$OrderValue['OrderBookDate'] = $OrderBookDate;
$OrderValue['OrderDeliveryDate'] = $OrderDeliveryDate;
$CustomerName = '';
$custmer = Customer::where('CustomerId', $CustomerId)->get();
if ($custmer->count() > 0)
{ //email is not exist
$custmer = $custmer->first();
$CustomerName = $custmer->CustomerName;
}
$OrderValue['CustomerName'] = $CustomerName;
$OrderStatusTitle = '';
$OrderStatus = OrderStatus::select('*')
->where('OrderStatusId', '=', $OrderStatusId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($OrderStatus->count() > 0)
{ //email is not exist
$OrderStatus = $OrderStatus->first();
$OrderStatusTitle = $OrderStatus->OrderStatusTitle;
}
$OrderValue['OrderStatusTitle'] = $OrderStatusTitle;
$CreatedFormatedDate = $OrderValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$OrderValue->CreatedFormatedDate = $CreatedFormatedDate;
}
if ($Order->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Orders' => $Order,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Order does not exist",
'ResponseCode' => "201",
'Orders' => array(),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//Get Team Order List
public function getTeamOrderList(Request $request, $CustomerId='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$TeamList = $this->APICommonController->getManagerTeamList($UserId);
$Order = Customer::select('tbl_order.*')
->leftJoin('tbl_order', 'tbl_customer.CustomerId', '=', 'tbl_order.CustomerId')
->where('tbl_customer.IsDeleted', '=', '0')
->where('tbl_order.IsDeleted', '=', '0')
->whereIn('tbl_order.AssignTo',$TeamList)
->orderBy('tbl_order.id', 'desc')
->get();
// $Order = Order::select('*')
// ->where('IsDeleted', '=', 0)
// ->orderBy('id', 'desc')
// ->get();
foreach ($Order as $key => $OrderValue)
{
$CustomerId = $OrderValue->CustomerId;
$OrderStatusId = $OrderValue->OrderStatusId;
$OrderBookDate = date('d-m-Y', strtotime($OrderValue->OrderBookDate));
$OrderDeliveryDate = date('d-m-Y', strtotime($OrderValue->OrderDeliveryDate));
$OrderValue['OrderBookDate'] = $OrderBookDate;
$OrderValue['OrderDeliveryDate'] = $OrderDeliveryDate;
$CustomerName = '';
$custmer = Customer::where('CustomerId', $CustomerId)->get();
if ($custmer->count() > 0)
{ //email is not exist
$custmer = $custmer->first();
$CustomerName = $custmer->CustomerName;
}
$OrderValue['CustomerName'] = $CustomerName;
$OrderStatusTitle = '';
$OrderStatus = OrderStatus::select('*')
->where('OrderStatusId', 'like', $OrderStatusId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($OrderStatus->count() > 0)
{ //email is not exist
$OrderStatus = $OrderStatus->first();
$OrderStatusTitle = $OrderStatus->OrderStatusTitle;
}
$OrderValue['OrderStatusTitle'] = $OrderStatusTitle;
$CreatedFormatedDate = $OrderValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$OrderValue->CreatedFormatedDate = $CreatedFormatedDate;
}
if ($Order->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Orders' => $Order,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Order does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getOrderDetails
public function getOrderList(Request $request, $CustomerId='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$CustomerName='';
if($CustomerId)
{
$Order = Order::select('*')
->where('CustomerId', 'like', $CustomerId)
->where('IsDeleted', '=', 0)
->where('AssignTo',$UserId)
->orderBy('id', 'desc')
->get();
}
else
{
$Order = Customer::select('tbl_order.*')
->leftJoin('tbl_order', 'tbl_customer.CustomerId', '=', 'tbl_order.CustomerId')
->where('tbl_customer.IsDeleted', '=', '0')
->where('tbl_order.IsDeleted', '=', '0')
->where('tbl_order.AssignTo',$UserId)
->orderBy('tbl_order.id', 'desc')
->get();
// $Order = Order::select('*')
// ->where('IsDeleted', '=', 0)
// ->orderBy('id', 'desc')
// ->get();
}
foreach ($Order as $key => $OrderValue)
{
$CustomerId = $OrderValue->CustomerId;
$OrderStatusId = $OrderValue->OrderStatusId;
$OrderBookDate = date('d-m-Y', strtotime($OrderValue->OrderBookDate));
$OrderDeliveryDate = date('d-m-Y', strtotime($OrderValue->OrderDeliveryDate));
$OrderValue['OrderBookDate'] = $OrderBookDate;
$OrderValue['OrderDeliveryDate'] = $OrderDeliveryDate;
$CustomerName = '';
$custmer = Customer::where('CustomerId', $CustomerId)->get();
if ($custmer->count() > 0)
{ //email is not exist
$custmer = $custmer->first();
$CustomerName = $custmer->CustomerName;
}
$OrderValue['CustomerName'] = $CustomerName;
$OrderStatusTitle = '';
$OrderStatus = OrderStatus::select('*')
->where('OrderStatusId', 'like', $OrderStatusId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($OrderStatus->count() > 0)
{ //email is not exist
$OrderStatus = $OrderStatus->first();
$OrderStatusTitle = $OrderStatus->OrderStatusTitle;
}
$OrderValue['OrderStatusTitle'] = $OrderStatusTitle;
$CreatedFormatedDate = $OrderValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$OrderValue->CreatedFormatedDate = $CreatedFormatedDate;
}
if ($Order->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Orders' => $Order,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Order does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//Gloabl Search
public function getOrderSearchList(Request $request, $OrderNo='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$CustomerName='';
if($OrderNo)
{
$Order = Order::select('*')
->where('OrderNo', 'iLIKE', '%'.$OrderNo.'%')
->where('IsDeleted', '=', 0)
->where('Created_by',$UserId)
->orderBy('id', 'desc')
->get();
}
else
{
$Order = Order::select('*')
->where('IsDeleted', '=', 0)
->where('Created_by',$UserId)
->orderBy('id', 'desc')
->get();
}
foreach ($Order as $key => $OrderValue)
{
$CustomerId = $OrderValue->CustomerId;
$OrderStatusId = $OrderValue->OrderStatusId;
$OrderBookDate = date('d-m-Y', strtotime($OrderValue->OrderBookDate));
$OrderDeliveryDate = date('d-m-Y', strtotime($OrderValue->OrderDeliveryDate));
$OrderValue['OrderBookDate'] = $OrderBookDate;
$OrderValue['OrderDeliveryDate'] = $OrderDeliveryDate;
$CustomerName = '';
$custmer = Customer::where('CustomerId', $CustomerId)->get();
if ($custmer->count() > 0)
{ //email is not exist
$custmer = $custmer->first();
$CustomerName = $custmer->CustomerName;
}
$OrderValue['CustomerName'] = $CustomerName;
$OrderStatusTitle = '';
$OrderStatus = OrderStatus::select('*')
->where('OrderStatusId', '=', $OrderStatusId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($OrderStatus->count() > 0)
{ //email is not exist
$OrderStatus = $OrderStatus->first();
$OrderStatusTitle = $OrderStatus->OrderStatusTitle;
}
$OrderValue['OrderStatusTitle'] = $OrderStatusTitle;
}
if ($Order->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Orders' => $Order,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Order does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//Global Search End
//User get getUserRoleList
public function getUserRoleList($ManagerId='') {
//Check Memeber is exist or not
$users = User::select('UserId', 'FirstName', 'LastName', 'Email','Mobile', 'ManagerId', 'ProfileId')
->where('ManagerId',$ManagerId)
->get();
if ($users->count() > 0)
{ //email is exist
foreach ($users as $key => $UValue)
{
$UserId = $UValue['UserId'];
$FirstName = $UValue['FirstName'];
$LastName = $UValue['LastName'];
$ManagerId = $UValue['ManagerId'];
$this->TeamList[] = $UValue;
//echo 'UserId - '.$UserId .'('.$FirstName.') '.', ManagerId - '.$ManagerId."\n";
if($UserId){
$this->getUserRoleList($UserId);
}
}
}
return $responseData = $this->TeamList;
//return response()->json($responseData);
}
//Order Search
public function getOrderSearch(Request $request, $SearchKey='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$CustomerName='';
$Order = array();
// $TeamList = $this->getUserRoleList($UserId);
$TeamList = $this->APICommonController->getManagerTeamList($UserId);
if(!$TeamList)
{
$TeamList = array();
}
array_push($TeamList, $UserId);
if(!$SearchKey)
{
$response = [
'Success' => false,
'ResponseMessage' => "search text required.",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
'TeamList'=>$TeamList
];
return response()->json($response);
}
// DB::enableQueryLog();
$Order = Order::select('*')
->leftJoin('tbl_customer', 'tbl_customer.CustomerId', '=', 'tbl_order.CustomerId')
->where('tbl_order.OrderNo', 'iLIKE', '%'.$SearchKey.'%')
//->orWhere('tbl_customer.CustomerName', 'iLIKE', '%'.$SearchKey.'%')
->where('tbl_order.IsDeleted', '=', '0')
->whereIn('tbl_order.AssignTo',$TeamList)
->orderBy('tbl_order.id', 'desc')
->get();
//dd(DB::getQueryLog());
//echo $UserId;
//exit;
if ($Order->count() > 0)
{
foreach ($Order as $key => $OrderValue)
{
$CustomerId = $OrderValue->CustomerId;
$OrderStatusId = $OrderValue->OrderStatusId;
$OrderBookDate = date('d-m-Y', strtotime($OrderValue->OrderBookDate));
$OrderDeliveryDate = date('d-m-Y', strtotime($OrderValue->OrderDeliveryDate));
$OrderValue['OrderBookDate'] = $OrderBookDate;
$OrderValue['OrderDeliveryDate'] = $OrderDeliveryDate;
$CustomerName = '';
$custmer = Customer::where('CustomerId', $CustomerId)->get();
if ($custmer->count() > 0)
{ //email is not exist
$custmer = $custmer->first();
$CustomerName = $custmer->CustomerName;
}
$OrderValue['CustomerName'] = $CustomerName;
$OrderStatusTitle = '';
$OrderStatus = OrderStatus::select('*')
->where('OrderStatusId', '=', $OrderStatusId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($OrderStatus->count() > 0)
{ //email is not exist
$OrderStatus = $OrderStatus->first();
$OrderStatusTitle = $OrderStatus->OrderStatusTitle;
}
$OrderValue['OrderStatusTitle'] = $OrderStatusTitle;
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Orders' => $Order,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'TeamList'=>$TeamList
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Order not found.",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
'TeamList'=>$TeamList
];
return response()->json($response);
}
}
//Order Search
//getOrderStatusList
public function getOrderStatusList(Request $request, $CustomerId='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$OrderStatus = OrderStatus::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($OrderStatus->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'OrderStatus' => $OrderStatus,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "OrderStatus does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//deleteOrderItem
public function deleteOrderItem(Request $request) {
//TODO What is device_token
$CreatedDate = date('Y-m-d H:i:s',time());
$data = $request->json()->all();
$OrderId = $this->userLib->useridGenrator();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$CustomerId = isset($data['CustomerId']) ? $data['CustomerId'] : '';
$OrderId = isset($data['OrderId']) ? $data['OrderId'] : '';
$OrderItemId = isset($data['OrderItemId']) ? $data['OrderItemId'] : '';
if(!$OrderId)
{
$response = [
'success' => false,
'error_message' => "OrderId required",
'error_code' => "302",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$tmpdata = array();
$tmpdata['IsDeleted'] = '1';
$tmpdata['Updated_by'] = $UserId;
$tmpdata['Updated_at'] = $CreatedDate;
$orderItemDelete = OrderItems::where('OrderId',$OrderId)->where('OrderItemId',$OrderItemId)->update($tmpdata);
if($orderItemDelete)
{
$response = [
'Success' => true,
'ResponseMessage' => "Order Item has been deleted",
'ResponseCode' => "200",
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "202",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//User Registration
public function deleteOrder(Request $request) {
//TODO What is device_token
$CreatedDate = date('Y-m-d H:i:s',time());
$data = $request->json()->all();
$OrderId = $this->userLib->useridGenrator();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$CustomerId = isset($data['CustomerId']) ? $data['CustomerId'] : '';
$OrderId = isset($data['OrderId']) ? $data['OrderId'] : '';
if(!$OrderId)
{
$response = [
'success' => false,
'error_message' => "OrderId required",
'error_code' => "302",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
if(!$CustomerId)
{
$response = [
'success' => false,
'error_message' => "CustomerId required",
'error_code' => "303",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$tmpdata = array();
$tmpdata['IsDeleted'] = '1';
$tmpdata['Updated_by'] = $UserId;
$tmpdata['Updated_at'] = $CreatedDate;
$orderDelete = Order::where('OrderId',$OrderId)->where('CustomerId',$CustomerId)->update($tmpdata);
if($orderDelete)
{
$OrderQuery = "update salesforce.Order set Status = '1',Is_Deleted__c='1' where Order_Id__c='$OrderId'";
DB::connection('pgsql')->update($OrderQuery);
$tmpdata = array();
$tmpdata['IsDeleted'] = '1';
$tmpdata['Updated_by'] = $UserId;
$tmpdata['Updated_at'] = $CreatedDate;
$orderItemDelete = OrderItems::where('OrderId',$OrderId)->where('CustomerId',$CustomerId)->update($tmpdata);
$response = [
'Success' => true,
'ResponseMessage' => "Order has been Deleted",
'ResponseCode' => "200",
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "202",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
}