add_action('silex_action','the_so'); function so_title(){ echo "Shipping Order"; } function create_so_css() { ?> get('/shipping-order', function() use($csrf) { global $hooks; global $app; $hooks->add_action('global_css', "so_css"); $hooks->add_action('global_js', "so_js"); $hooks->add_action('the_title',"so_title"); the_head(); include 'so.tpl.php'; the_footer(); return ""; }); $app->post('/shipping-order/getModalSuccess', function(Request $request) { global $db; $so_id = $request->get('so_id'); $marking_no = getSOData($so_id, "marking_no"); $order_no = substr($marking_no, -5); $html = '

Order '.$order_no.' Created

Your order '.$order_no.' have successfully created. Please procees to action below :

Close  Create New  Chat
'; $html .= "" .getModalMarking($so_id) . "
"; return $html; }); $app->post('/shipping-order/getWarehouse', function(Request $request) { global $db; $forwarder_id = $request->get('forwarder_id'); $db->bind("company_id",$forwarder_id); $data = $db->query("SELECT * FROM warehouses WHERE company_id = :company_id"); $html = ""; foreach ($data as $key => $value) { $html .= ""; } return $html; }); $app->post('/shipping-order/getDeliveryAddress', function(Request $request) { global $db; $branch_id = $_SESSION['branch_id']; $db->bind("branch_id",$branch_id); $data = $db->query("SELECT * FROM warehouses WHERE branch_id = :branch_id"); $html = ""; foreach ($data as $key => $value) { $html .= ""; } return $html; }); $app->post('/shipping-order/getWarehouseFromPO', function(Request $request) { global $db; $po_id = $request->get('po_id'); $forwarder_id = getPOData($po_id, "forwarder_id"); $db->bind("company_id",$forwarder_id); $data = $db->query("SELECT * FROM warehouses WHERE company_id = :company_id"); $html = ""; foreach ($data as $key => $value) { $html .= ""; } return $html; }); $app->post('/shipping-order/getwarehousedata', function(Request $request) { global $db; $warehouse_id = $request->get('warehouse_id'); $db->bind("warehouse_id",$warehouse_id); $data = $db->query("SELECT * FROM warehouses WHERE warehouse_id = :warehouse_id"); $output_array = array(); foreach($data as $row) { $output_array[] = array( 'warehouse_id' => $row['warehouse_id'], 'name' => $row['name'], 'address' => $row['address'] , 'zip' => $row['zip'] , 'city' => $row['city'] , 'state' => $row['state'], 'country' => $row['country'], 'contact_person' => $row['contact_person'], 'contact_person_no' => $row['contact_person_no']); } return json_encode( $output_array ); }); $app->post('/shipping-order/getdeliverydata', function(Request $request) { global $db; $delivery_id = $request->get('delivery_id'); $db->bind("delivery_id",$delivery_id); $data = $db->query("SELECT * FROM warehouses WHERE warehouse_id = :delivery_id"); $output_array = array(); foreach($data as $row) { $output_array[] = array( 'warehouse_id' => $row['warehouse_id'], 'name' => $row['name'], 'address' => $row['address'] , 'zip' => $row['zip'] , 'city' => $row['city'] , 'state' => $row['state'], 'country' => $row['country'], 'contact_person' => $row['contact_person'], 'contact_person_no' => $row['contact_person_no']); } return json_encode( $output_array ); }); $app->post('/shipping-order/list', function(Request $request) { $curpage = $request->get('page'); include 'so.list.php'; return ''; }); $app->post('/shipping-order/contact', function(Request $request) { $curpage = $request->get('page'); include 'companies.list.php'; return ''; }); $app->get('/shipping-order/create', function(){ global $hooks; global $app; $hooks->add_action('global_css', "create_so_css"); $hooks->add_action('global_js', "create_so_js"); $hooks->add_action('the_title',"so_title"); the_head(); include 'create.tpl.php'; the_footer(); typeAhead(); return ""; }); $app->post('/shipping-order/add-shipping-order', function (Request $request) { global $db; $user_id = $_SESSION['user_id']; $order_type = $request->get('order_type'); $forwarder_id = $request->get('forwarder_id'); $supplier = $request->get('supplier'); $supplier_contact_person = $request->get('supplier_contact_person'); $supplier_contact_person_no = $request->get('supplier_contact_person_no'); $warehouse_name = $request->get('warehouse_name'); $warehouse_address = $request->get('warehouse_address'); $warehouse_city = $request->get('warehouse_city'); $warehouse_zip = $request->get('warehouse_zip'); $warehouse_state = $request->get('warehouse_state'); $warehouse_country = $request->get('warehouse_country'); $warehouse_contact_person = $request->get('warehouse_contact_person'); $warehouse_contact_person_no = $request->get('warehouse_contact_person_no'); $warehouse_id = $request->get('warehouse_id'); $delivery_name = $request->get('delivery_name'); $delivery_address = $request->get('delivery_address'); $delivery_city = $request->get('delivery_city'); $delivery_zip = $request->get('delivery_zip'); $delivery_state = $request->get('delivery_state'); $delivery_country = $request->get('delivery_country'); $delivery_contact_person = $request->get('delivery_contact_person'); $delivery_contact_person_no = $request->get('delivery_contact_person_no'); $delivery_id = $request->get('delivery_id'); $company_id = $_SESSION['company_id']; $branch_id = $_SESSION['branch_id']; $shippingorderitems = $request->get('shippingorderitems'); if($delivery_id == "" || $delivery_id == null){ $db->bind("delivery_name", $delivery_name); $db->bind("delivery_address", $delivery_address); $db->bind("delivery_city", $delivery_city); $db->bind("delivery_zip", $delivery_zip); $db->bind("delivery_state", $delivery_state); $db->bind("delivery_country", $delivery_country); $db->bind("branch_id", $_SESSION['branch_id']); $db->bind("company_id", $_SESSION['company_id']); $checkDeliveryAddress = $db->query("SELECT * FROM warehouses WHERE name = :delivery_name and address = :delivery_address and city = :delivery_city and zip = :delivery_zip and state = :delivery_state and country = :delivery_country and branch_id = :branch_id and company_id = :company_id"); if(count($checkDeliveryAddress) > 0){ $delivery_id = $checkDeliveryAddress[0]['warehouse_id']; }else{ $db->bind("delivery_name", $delivery_name); $db->bind("delivery_address", $delivery_address); $db->bind("delivery_city", $delivery_city); $db->bind("delivery_zip", $delivery_zip); $db->bind("delivery_state", $delivery_state); $db->bind("delivery_country", $delivery_country); $db->bind("delivery_contact_person", $delivery_contact_person); $db->bind("delivery_contact_person_no", $delivery_contact_person_no); $db->bind("branch_id", $_SESSION['branch_id']); $db->bind("company_id", $_SESSION['company_id']); $deliveryCreate = $db->query("INSERT INTO warehouses ( name, address, city, zip, state, country, contact_person, contact_person_no, branch_id, company_id) VALUES (:delivery_name, :delivery_address, :delivery_city, :delivery_zip, :delivery_state, :delivery_country, :delivery_contact_person, :delivery_contact_person_no ,:branch_id, :company_id);"); } } $db->bind("forwarder_id", $forwarder_id); $db->bind("marking_no", ""); $db->bind("supplier_company_name", $supplier); $db->bind("supplier_contact_person", $supplier_contact_person); $db->bind("supplier_contact_person_no", $supplier_contact_person_no); $db->bind("warehouse_name", $warehouse_name); $db->bind("warehouse_address", $warehouse_address); $db->bind("warehouse_city", $warehouse_city); $db->bind("warehouse_zip", $warehouse_zip); $db->bind("warehouse_state", $warehouse_state); $db->bind("warehouse_country", $warehouse_country); $db->bind("warehouse_contact_person", $warehouse_contact_person); $db->bind("warehouse_contact_person_no", $warehouse_contact_person_no); $db->bind("warehouse_id", $warehouse_id); $db->bind("delivery_name", $delivery_name); $db->bind("delivery_address", $delivery_address); $db->bind("delivery_zip", $delivery_zip); $db->bind("delivery_city", $delivery_city); $db->bind("delivery_state", $delivery_state); $db->bind("delivery_country", $delivery_country); $db->bind("delivery_contact_person", $delivery_contact_person); $db->bind("delivery_contact_person_no", $delivery_contact_person_no); $db->bind("delivery_id", $delivery_id); $db->bind("company_id", $company_id); $db->bind("branch_id", $branch_id); $soCreate = $db->query("INSERT INTO shipping_orders ( marking_no, supplier_company_name, supplier_contact_person, supplier_contact_person_no, warehouse_name, warehouse_address, warehouse_city, warehouse_zip, warehouse_state, warehouse_country, warehouse_contact_person, warehouse_contact_person_no, delivery_name, delivery_address, delivery_city, delivery_zip, delivery_state, delivery_country,delivery_contact_person,delivery_contact_person_no, branch_id, warehouse_id, delivery_id, company_id, forwarder_id) VALUES (:marking_no, :supplier_company_name, :supplier_contact_person, :supplier_contact_person_no, :warehouse_name, :warehouse_address, :warehouse_city, :warehouse_zip, :warehouse_state, :warehouse_country, :warehouse_contact_person, :warehouse_contact_person_no, :delivery_name, :delivery_address, :delivery_city, :delivery_zip, :delivery_state, :delivery_country, :delivery_contact_person, :delivery_contact_person_no, :branch_id, :warehouse_id, :delivery_id, :company_id, :forwarder_id);"); $so_id = $db->lastInsertId(); if ($soCreate) { $ordercountCreate = $db->query("INSERT INTO order_count (id) VALUES (NULL);"); $order_no = sprintf('%05d', $db->lastInsertId()); $marking = getMarkingNo($company_id, $forwarder_id, $branch_id); $marking_no = getMarkingNo($company_id, $forwarder_id, $branch_id). "/" .$order_no; $db->bind("order_no", $order_no); $db->bind("marking", $marking); $db->bind("marking_no", $marking_no); $db->bind("so_id", $so_id); $soUpdate = $db->query("UPDATE `shipping_orders` SET `marking_no`=:marking_no, `marking`=:marking, `order_no` = :order_no WHERE so_id = :so_id"); foreach ($shippingorderitems as $key => $shippingorderitem) { # check reqired description and quantity if ( $shippingorderitem['description'] == "" ){ return new Response("Please make sure all your item have a description", 403); } if ( $shippingorderitem['packaging_quantity'] == "") { return new Response("Please make sure all your item have a quantity", 403); } $db->bind("description", $shippingorderitem['description']); $db->bind("model_no", $shippingorderitem['model_no']); $db->bind("brand_no", $shippingorderitem['brand_no']); $db->bind("item_code", $shippingorderitem['item_code']); $db->bind("uom", $shippingorderitem['uom']); $db->bind("quantity", (int)$shippingorderitem['quantity']); //$db->bind("total_cartons", (int)$shippingorderitem['total_cartons']); $db->bind("packaging_quantity", (int)$shippingorderitem['packaging_quantity']); $db->bind("packaging_cbm", (int)$shippingorderitem['packaging_cbm']); if($shippingorderitem['packaging_type1'] == "new"){ $db->bind("packaging_type", $shippingorderitem['packaging_type2']); }else{ $db->bind("packaging_type", $shippingorderitem['packaging_type1']); } $db->bind("packaging_height", (int)$shippingorderitem['packaging_height']); $db->bind("packaging_width", (int)$shippingorderitem['packaging_width']); $db->bind("packaging_depth", (int)$shippingorderitem['packaging_depth']); $db->bind("packaging_gross", (int)$shippingorderitem['packaging_gross']); $db->bind("packaging_nett", (int)$shippingorderitem['packaging_nett']); $db->bind("image", ($shippingorderitem['image'] <> "" ? $shippingorderitem['image'] : NULL)); $db->bind("image2", ($shippingorderitem['image2'] <> "" ? $shippingorderitem['image2'] : NULL)); $db->bind("image3", ($shippingorderitem['image3'] <> "" ? $shippingorderitem['image3'] : NULL)); $db->bind("image4", ($shippingorderitem['image4'] <> "" ? $shippingorderitem['image4'] : NULL)); $db->bind("so_id", $so_id); $soItemCreate = $db->query("INSERT INTO shipping_order_items ( item_code, model_no, brand_no, description, quantity, uom, packaging_quantity, packaging_type, packaging_cbm, packaging_height, packaging_width, packaging_depth, packaging_gross, packaging_nett, image, image2, image3, image4, so_id) VALUES (:item_code, :model_no, :brand_no, :description, :quantity, :uom, :packaging_quantity, :packaging_type, :packaging_cbm, :packaging_height, :packaging_width, :packaging_depth, :packaging_gross, :packaging_nett, :image, :image2, :image3, :image4, :so_id);"); } } if ($soItemCreate) { $chat_name = $order_no; //create messages $db->bind("message", "Your shipping order have been created."); $db->bind("chat_type", "6"); $db->bind("from_id", $user_id); $createMessage = $db->query("INSERT INTO notice_messages(message,chat_type,from_id) VALUES (:message,:chat_type,:from_id)"); $message_id = $db->lastInsertId(); //create room for user_id $db->bind("chat_name",$chat_name); $db->bind("owner_id", $user_id); $db->bind("order_id", $so_id); $db->bind("room_type", "order"); $createRoom = $db->query("INSERT INTO notice_rooms(chat_name,owner_id,order_id,room_type) VALUES ( :chat_name, :owner_id, :order_id, :room_type)"); $room_id = $db->lastInsertId(); //create members for room (current user) $db->bind("user_id", $user_id); $db->bind("room_id", $room_id); $createMembers = $db->query("INSERT INTO notice_members(room_id,user_id,status) VALUES (:room_id, :user_id, 1)"); //create unread notification $db->bind("room_id", $room_id); $db->bind("message_id", $message_id); $db->bind("user_id", $user_id); $createMembers = $db->query("INSERT INTO notice_unread(room_id,message_id,user_id, status) VALUES (:room_id, :message_id,:user_id, 0)"); $db->bind("forwarder_id", $forwarder_id); $companyStaffs = $db->query("SELECT * FROM user_company WHERE company_id = :forwarder_id and position = 1"); foreach($companyStaffs as $key => $value){ $db->bind("user_id", $value['user_id']); $db->bind("room_id", $room_id); $createMembers = $db->query("INSERT INTO notice_members(room_id,user_id,status) VALUES (:room_id, :user_id, 1)"); //create unread notification for admin staffs $db->bind("room_id", $room_id); $db->bind("message_id", $message_id); $db->bind("user_id", $value['user_id']); $createMembers = $db->query("INSERT INTO notice_unread(room_id,message_id,user_id, status) VALUES (:room_id, :message_id,:user_id, 0)"); $db->bind("user_id", $value['user_id']); $db->bind("so_id", $so_id); $createSOUnread = $db->query("INSERT INTO shipping_order_unread(user_id,so_id) VALUES (:user_id,:so_id)"); } //connecting messages with room $db->bind("room_id", $room_id); $db->bind("message_id", $message_id); $createMembers = $db->query("INSERT INTO notice_room_message(room_id,message_id) VALUES (:room_id, :message_id)"); return new Response($so_id, 200); } else { return new Response($so_id, 201); } }); $app->get('/shipping-order/details/{id}', function ($id) use ($app) { global $db; global $hooks; global $po_id; global $so_id; $so_id = $id; $po_id = getSOData($id, "po_id"); if (!isset($id) || !isSOMine($id)) { return $app->redirect('/shipping-order'); } $hooks->add_action('global_css', "create_so_css"); $hooks->add_action('global_js', "so_details_js"); $hooks->add_action('the_title',"so_title"); the_head(); include 'so.details.php'; the_footer(); return ""; }); $app->get('/shipping-order/edit/{id}', function ($id) use ($app) { global $db; global $hooks; global $po_id; global $so_id; $so_id = $id; $po_id = getSOData($id, "po_id"); if (!isset($id) || !isSOMine($id)) { return $app->redirect('/shipping-order'); } $hooks->add_action('global_css', "create_so_css"); $hooks->add_action('global_js', "so_details_js"); $hooks->add_action('the_title',"so_title"); the_head(); include 'so.edit.php'; the_footer(); return ""; }); $app->post('/shipping-order/get-packing-list', function (Request $request) { global $db; $id = $request->get('id'); $html = getModalPackingList($id); return $html; }); $app->post('/shipping-order/get-marking', function (Request $request) { global $db; $id = $request->get('id'); $html = "" .getModalMarking($id) . "
"; return $html; }); $app->post('/dashboard/shipping-order/cancel', function(Request $request) { global $db; $so_id = $request->get('id'); $db->bind("so_id",$so_id); $soUpdate = $db->query("UPDATE `shipping_orders` SET `status`=4 WHERE so_id = :so_id"); if ($soUpdate){ return new Response($so_id, 200); } else{ return new Response($so_id, 201); } }); } include 'so.func.php';