Esempio n. 1
0
        public long CancelToDelivery(ToDeliveryModel toDeliveryModel)
        {
            try
            {
                var toDeliveryMaster       = toDeliveryModel.ToDeliveryMasterData;
                var toDeliveryDetailsList  = toDeliveryModel.ToDeliveryDetailsList;
                var receiveSerialNoDetails = toDeliveryModel.ReceiveSerialNoDetails;

                var toDeliveryObject = _entities.to_delivery_master.Find(toDeliveryMaster.to_delivery_master_id);
                toDeliveryObject.status     = "Canceled";
                toDeliveryObject.is_active  = false;
                toDeliveryObject.is_deleted = true;
                _entities.SaveChanges();

                foreach (var item in toDeliveryDetailsList)
                {
                    var toDeliveryDetails = new to_delivery_details();
                    toDeliveryDetails.delivered_quantity = item.delivered_quantity;

                    var transferOrderDetailsData = _entities.transfer_order_details.Where(t => t.transfer_order_master_id == toDeliveryObject.transfer_order_master_id).ToList();

                    var fullReturn = true;

                    foreach (var todItem in transferOrderDetailsData)
                    {
                        if (todItem.product_id == item.product_id && todItem.color_id == item.color_id && todItem.product_version_id == item.product_version_id)
                        {
                            todItem.transfered_quantity -= item.delivered_quantity;
                            _entities.SaveChanges();
                            if (todItem.transfered_quantity != 0)
                            {
                                fullReturn = false;
                            }
                        }
                    }
                    if (fullReturn)
                    {
                        var xxx = _entities.transfer_order_master.Find(toDeliveryObject.transfer_order_master_id);
                        xxx.status = "Created";
                        _entities.SaveChanges();
                        InventoryRepository updateInventoty = new InventoryRepository();

                        //'39' virtual in-transit warehouse-----------------------------
                        updateInventoty.UpdateInventory("TO DELIVERY CANCEL", toDeliveryMaster.to_delivery_no, 39, toDeliveryMaster.from_warehouse_id ?? 0, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, item.unit_id ?? 0,
                                                        item.delivered_quantity ?? 0, toDeliveryMaster.created_by ?? 0);
                    }
                    else
                    {
                        var xxx = _entities.transfer_order_master.Find(toDeliveryObject.transfer_order_master_id);
                        xxx.status = "Partially Delivered";
                        _entities.SaveChanges();
                        InventoryRepository updateInventoty = new InventoryRepository();

                        //'39' virtual in-transit warehouse-----------------------------
                        updateInventoty.UpdateInventory("TO DELIVERY CANCEL", toDeliveryMaster.to_delivery_no, 39, toDeliveryMaster.from_warehouse_id ?? 0, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, item.unit_id ?? 0,
                                                        item.delivered_quantity ?? 0, toDeliveryMaster.created_by ?? 0);
                    }
                }


                foreach (var item in receiveSerialNoDetails)
                {
                    receive_serial_no_details receiveSerial = _entities.receive_serial_no_details.FirstOrDefault(r => r.imei_no == item.imei_no || r.imei_no2 == item.imei_no);

                    receiveSerial.current_warehouse_id = toDeliveryMaster.from_warehouse_id;
                    receiveSerial.deliver_date         = null;
                    receiveSerial.to_deliver_master_id = null;
                    _entities.SaveChanges();
                }
                return(1);
            }
            catch (Exception)
            {
                return(0);
            }
        }
Esempio n. 2
0
        public long AddToDelivery(ToDeliveryModel toDeliveryModel)
        {
            try
            {
                var toDeliveryMaster       = toDeliveryModel.ToDeliveryMasterData;
                var toDeliveryDetailsList  = toDeliveryModel.ToDeliveryDetailsList;
                var receiveSerialNoDetails = toDeliveryModel.ReceiveSerialNoDetails;

                // generate order_no
                long toDeliverySerial = _entities.to_delivery_master.Max(po => (long?)po.to_delivery_master_id) ?? 0;

                toDeliverySerial++;
                var toDeliveryStr = toDeliverySerial.ToString().PadLeft(7, '0');

                string toDeliveryNo = "TO-DN" + "-" + toDeliveryStr;
                toDeliveryMaster.to_delivery_no           = toDeliveryNo;
                toDeliveryMaster.to_delivery_date         = DateTime.Now;
                toDeliveryMaster.transfer_order_master_id = toDeliveryModel.ToDeliveryMasterData.transfer_order_master_id;
                toDeliveryMaster.courier_id        = toDeliveryModel.ToDeliveryMasterData.courier_id;
                toDeliveryMaster.courier_slip_no   = toDeliveryModel.ToDeliveryMasterData.courier_slip_no;
                toDeliveryMaster.from_warehouse_id = toDeliveryModel.ToDeliveryMasterData.from_warehouse_id;
                toDeliveryMaster.to_warehouse_id   = toDeliveryModel.ToDeliveryMasterData.to_warehouse_id;
                toDeliveryMaster.remarks           = toDeliveryModel.ToDeliveryMasterData.remarks;
                toDeliveryMaster.status            = "RFD";
                toDeliveryMaster.created_by        = toDeliveryModel.ToDeliveryMasterData.created_by;
                toDeliveryMaster.created_date      = DateTime.Now;
                toDeliveryMaster.updated_by        = toDeliveryModel.ToDeliveryMasterData.updated_by;
                toDeliveryMaster.updated_date      = DateTime.Now;
                toDeliveryMaster.is_active         = true;
                toDeliveryMaster.is_deleted        = false;

                _entities.to_delivery_master.Add(toDeliveryMaster);
                _entities.SaveChanges();

                long toDeliveryMasterId = toDeliveryMaster.to_delivery_master_id;

                var transferOrderTotalQty = 0;
                var deliveredTotalQty     = 0;

                foreach (var item in toDeliveryDetailsList)
                {
                    var toDeliveryDetails = new to_delivery_details();

                    toDeliveryDetails.to_delivery_master_id = toDeliveryMasterId;
                    toDeliveryDetails.product_id            = item.product_id;
                    toDeliveryDetails.color_id           = item.color_id;
                    toDeliveryDetails.product_version_id = item.product_version_id;
                    toDeliveryDetails.unit_id            = item.unit_id;
                    toDeliveryDetails.to_quantity        = item.to_quantity;
                    toDeliveryDetails.delivered_quantity = item.delivered_quantity;


                    if (toDeliveryDetails.delivered_quantity > 0) //maruf
                    {
                        _entities.to_delivery_details.Add(toDeliveryDetails);
                    }

                    long saved = _entities.SaveChanges();

                    if (saved > 0)
                    {
                        // update inventory
                        InventoryRepository updateInventoty = new InventoryRepository();

                        //'39' virtual in-transit warehouse-----------------------------
                        updateInventoty.UpdateInventory("TO RFD", toDeliveryMaster.to_delivery_no, toDeliveryMaster.from_warehouse_id ?? 0, 39, toDeliveryDetails.product_id ?? 0, toDeliveryDetails.color_id ?? 0, toDeliveryDetails.product_version_id ?? 0, toDeliveryDetails.unit_id ?? 0,
                                                        toDeliveryDetails.delivered_quantity ?? 0, toDeliveryMaster.created_by ?? 0);
                    }
                    long transferOrderDetailsId = item.transfer_order_details_id;

                    transfer_order_details transferOrderDetails = _entities.transfer_order_details.Find(transferOrderDetailsId);

                    // Maruf: updating paramenters to check delivery status
                    transferOrderDetails.transfered_quantity += item.delivered_quantity;
                    transferOrderTotalQty += toDeliveryDetails.to_quantity ?? 0;
                    deliveredTotalQty     += toDeliveryDetails.delivered_quantity ?? 0;
                    _entities.SaveChanges();
                }
                // maruf: updating delivery status 19.Oct.2016
                var transferOrderMaster = _entities.transfer_order_master.FirstOrDefault(r => r.transfer_order_master_id == toDeliveryModel.ToDeliveryMasterData.transfer_order_master_id);
                transferOrderMaster.status = (deliveredTotalQty >= transferOrderTotalQty) ? "Delivered" : "Partially Delivered";
                _entities.SaveChanges();


                foreach (var item in receiveSerialNoDetails)
                {
                    receive_serial_no_details receiveSerial = _entities.receive_serial_no_details.FirstOrDefault(r => r.imei_no == item.imei_no || r.imei_no2 == item.imei_no);

                    receiveSerial.current_warehouse_id = 39;
                    receiveSerial.deliver_date         = DateTime.Now;
                    receiveSerial.to_deliver_master_id = toDeliveryMaster.to_delivery_master_id;
                    _entities.SaveChanges();
                }
                return(1);
            }
            catch (Exception)
            {
                return(0);
            }
        }