public HttpResponseMessage Put([FromBody] PurchaseOrderModel purchaseOrderModel)
        {
            try
            {
                var details = purchaseOrderModel.PoDetailsList;
                foreach (var item in details)
                {
                    var poDetails = new purchase_order_details
                    {
                        product_id          = item.product_id,
                        color_id            = item.color_id,
                        product_version_id  = item.product_version_id,
                        product_category_id = item.product_category_id
                    };

                    var kkk = productCategoryRepository.GetProductCategoryByProductId((long)item.product_id);
                    if (kkk != 3 && item.color_id == null && item.product_version_id == null)
                    {
                        var formatter = RequestFormat.JsonFormaterString();
                        return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                            output = "warning", msg = "Please Select color and version !!"
                        }, formatter));
                    }
                }
                if (string.IsNullOrEmpty(purchaseOrderModel.PoMasterData.supplier_id.ToString()))
                {
                    var formatter = RequestFormat.JsonFormaterString();
                    return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                        output = "error", msg = "Please Select Supplier !!"
                    }, formatter));
                }
                if (string.IsNullOrEmpty(purchaseOrderModel.PoMasterData.currency_id.ToString()))
                {
                    var formatter = RequestFormat.JsonFormaterString();
                    return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                        output = "error", msg = "Please Select Currency !!"
                    }, formatter));
                }
                else
                {
                    purchaseOrderRepository.EditPurchaseOrder(purchaseOrderModel);
                    var formatter = RequestFormat.JsonFormaterString();
                    return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                        output = "success", msg = "Purchase Order Update successfully"
                    }, formatter));
                }
            }
            catch (Exception ex)
            {
                var formatter = RequestFormat.JsonFormaterString();
                return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                    output = "error", msg = ex.ToString()
                }, formatter));
            }
        }
 public bool DeletePurchaseOrderDetailsById(long purchase_order_details_id)
 {
     try
     {
         purchase_order_details oPurchaseOrderDetails = _entities.purchase_order_details.Find(purchase_order_details_id);
         _entities.purchase_order_details.Attach(oPurchaseOrderDetails);
         _entities.purchase_order_details.Remove(oPurchaseOrderDetails);
         _entities.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
예제 #3
0
        public long AddGrn(GrnModel grnModel)
        {
            try
            {
                var  grnMaster              = grnModel.GrnMasterData;
                var  grnDetailsList         = grnModel.GrnDetailsList;
                var  receiveSerialNoDetails = grnModel.ReceiveSerialNoDetails;
                bool isDuplicateImei        = false;

                foreach (var item in receiveSerialNoDetails)
                {
                    long imeiForDuplicateSearch = item.imei_no ?? 0;

                    var xxx = _entities.receive_serial_no_details.Where(r => r.imei_no == imeiForDuplicateSearch).ToList();
                    if (xxx.Count > 0)
                    {
                        isDuplicateImei = true;
                    }
                }

                if (!isDuplicateImei)
                {
                    // generate order_no
                    long grnSerial = _entities.grn_master.Max(po => (long?)po.grn_master_id) ?? 0;
                    grnSerial++;
                    var grnStr = grnSerial.ToString().PadLeft(7, '0');

                    // SAVING GRN MASTER
                    string grnNo = "GRN-" + grnStr;
                    grnMaster.supplier_id = grnModel.GrnMasterData.supplier_id;
                    grnMaster.total_amount_including_vattax = grnModel.GrnMasterData.total_amount_including_vattax;
                    grnMaster.status     = grnModel.GrnMasterData.status;
                    grnMaster.company_id = grnModel.GrnMasterData.company_id;
                    grnMaster.grn_date   = grnModel.GrnMasterData.grn_date;
                    grnMaster.purchase_order_master_id = grnModel.GrnMasterData.purchase_order_master_id;
                    grnMaster.vat_total    = grnModel.GrnMasterData.vat_total;
                    grnMaster.warehouse_id = grnModel.GrnMasterData.warehouse_id;
                    grnMaster.created_by   = grnModel.GrnMasterData.created_by;
                    grnMaster.created_date = DateTime.Now;
                    grnMaster.updated_by   = grnModel.GrnMasterData.updated_by;
                    grnMaster.updated_date = DateTime.Now;
                    grnMaster.remarks      = grnModel.GrnMasterData.remarks;
                    grnMaster.lot_no       = grnModel.GrnMasterData.lot_no;
                    grnMaster.lc_id        = 0;
                    grnMaster.grn_no       = grnNo;
                    grnMaster.tax_total    = grnModel.GrnMasterData.tax_total;
                    grnMaster.total_amount_without_vattax = grnModel.GrnMasterData.total_amount_without_vattax;
                    grnMaster.mrr_status = false;

                    _entities.grn_master.Add(grnMaster);
                    _entities.SaveChanges();

                    // Maruf: 28.Feb.2016: Update CiPl received = true
                    //var ciPlMaster = _entities.ci_pl_master.Find(grnModel.GrnMasterData.purchase_order_master_id);
                    var ciPlMaster = _entities.ci_pl_master.FirstOrDefault(c => c.purchase_order_master_id == grnModel.GrnMasterData.purchase_order_master_id);
                    ciPlMaster.is_received = true;
                    _entities.SaveChanges();

                    long grnMasterId = grnMaster.grn_master_id;
                    foreach (var item in grnDetailsList)
                    {
                        var grnDetails = new grn_details
                        {
                            product_id         = item.product_id,
                            grn_master_id      = grnMasterId,
                            unit_id            = item.unit_id,
                            unit_price         = item.unit_price,
                            pi_quantity        = item.pi_quantity,
                            amount             = item.amount,
                            brand_id           = item.brand_id,
                            color_id           = item.color_id,
                            product_version_id = item.product_version_id,
                            receive_quantity   = item.receive_quantity,
                            vat_amount         = item.vat_amount,
                            tax_amount         = item.tax_amount,
                            line_total         = item.line_total,
                            size_id            = item.size_id,
                            vat_pcnt           = item.vat_pcnt,
                            tax_pcnt           = item.tax_pcnt
                        };

                        _entities.grn_details.Add(grnDetails);
                        // _entities.SaveChanges();
                        // kiron 04.09.2016
                        long saved = _entities.SaveChanges();
                        if (saved > 0)
                        {
                            // update inventory
                            InventoryRepository updateInventoty = new InventoryRepository();

                            // Maruf: 04.Apr.2017: move product from purchase(29) WH to GRN(4) WH; it will move to central after MRR process
                            updateInventoty.UpdateInventory("GRN", grnMaster.grn_no, 29,
                                                            4, grnDetails.product_id ?? 0, grnDetails.color_id ?? 0, grnDetails.product_version_id ?? 0, grnDetails.unit_id ?? 0,
                                                            grnDetails.receive_quantity ?? 0, grnMaster.created_by ?? 0);
                        }
                        long purchaseOrderDetailsId      = item.purchase_order_details_id;
                        purchase_order_details poDetails = _entities.purchase_order_details.Find(purchaseOrderDetailsId);
                        poDetails.receive_qty += item.receive_quantity;
                        _entities.SaveChanges();
                    }

                    foreach (var item in receiveSerialNoDetails)
                    {
                        int c = 0;
                        var receiveSerialNoDetailsData = new receive_serial_no_details
                        {
                            product_id            = item.product_id,
                            grn_master_id         = grnMasterId,
                            brand_id              = item.brand_id,
                            color_id              = item.color_id,
                            product_version_id    = item.product_version_id,
                            imei_no               = item.imei_no,
                            imei_no2              = item.imei_no2,
                            received_warehouse_id = 4, // 4-GRN WH; will be moved to central after MRR
                            current_warehouse_id  = 4, // 4-GRN WH; will be moved to central after MRR
                            received_date         = item.received_date,
                            requisition_id        = 0,
                            deliver_master_id     = 0,
                            sales_status          = false,
                            price_protected       = false,
                            carton_no             = item.carton_no
                        };
                        _entities.receive_serial_no_details.Add(receiveSerialNoDetailsData);
                        c++;
                        if (c == 100)
                        {
                            c = 0;
                            _entities.SaveChanges();
                        }
                    }
                    _entities.SaveChanges();
                    return(1);
                }


                return(0);
            }
            catch (Exception)
            {
                return(0);
            }
        }
        public bool UpdatePiInfoOnPo(PurchaseOrderModel purchaseOrderModel)
        {
            try
            {
                var poMaster      = purchaseOrderModel.PoMasterData;
                var poDetailsList = purchaseOrderModel.PoDetailsList;
                purchase_order_master masterData = _entities.purchase_order_master.Find(poMaster.purchase_order_master_id);

                if (string.IsNullOrEmpty(masterData.pi_attachment_location))
                {
                    return(false);
                }

                masterData.supplier_id = purchaseOrderModel.PoMasterData.supplier_id;
                masterData.pi_number   = purchaseOrderModel.PoMasterData.pi_number;
                masterData.currency_id = purchaseOrderModel.PoMasterData.currency_id;
                masterData.total_amount_including_vattax = purchaseOrderModel.PoMasterData.total_amount_including_vattax;
                masterData.status                      = "Updated";
                masterData.company_id                  = masterData.company_id;
                masterData.order_date                  = masterData.order_date;
                masterData.shipping_terms_id           = masterData.shipping_terms_id;
                masterData.expected_shipment_date      = masterData.expected_shipment_date;
                masterData.shipping_method_id          = masterData.shipping_method_id;
                masterData.vat_total                   = purchaseOrderModel.PoMasterData.vat_total;
                masterData.terms_n_condition           = purchaseOrderModel.PoMasterData.terms_n_condition;
                masterData.pi_terms_n_condition        = purchaseOrderModel.PoMasterData.pi_terms_n_condition;
                masterData.created_by                  = masterData.created_by;
                masterData.created_date                = masterData.created_date;
                masterData.updated_by                  = purchaseOrderModel.PoMasterData.updated_by;
                masterData.updated_date                = DateTime.Now;
                masterData.noc_number                  = purchaseOrderModel.PoMasterData.noc_number;
                masterData.remarks                     = purchaseOrderModel.PoMasterData.remarks;
                masterData.batch_id                    = 0;
                masterData.order_no                    = purchaseOrderModel.PoMasterData.order_no;
                masterData.tax_total                   = purchaseOrderModel.PoMasterData.tax_total;
                masterData.total_amount_without_vattax = purchaseOrderModel.PoMasterData.total_amount_without_vattax;
                _entities.SaveChanges();

                foreach (var item in poDetailsList)
                {
                    purchase_order_details detailsData =
                        _entities.purchase_order_details.FirstOrDefault(
                            pd =>
                            pd.purchase_order_master_id == poMaster.purchase_order_master_id &&
                            pd.purchase_order_details_id == item.purchase_order_details_id);
                    if (detailsData != null)
                    {
                        detailsData.purchase_order_master_id = poMaster.purchase_order_master_id;
                        detailsData.product_id = item.product_id;
                        detailsData.unit_id    = item.unit_id;
                        detailsData.unit_price = item.unit_price;
                        detailsData.quantity   = item.quantity;
                        detailsData.amount     = item.amount;
                        detailsData.brand_id   = item.brand_id;
                        detailsData.color_id   = item.color_id;

                        detailsData.pi_quantity        = item.pi_quantity;
                        detailsData.product_version_id = item.product_version_id;

                        detailsData.receive_qty = detailsData.receive_qty;
                        detailsData.vat_amount  = item.vat_amount;

                        detailsData.last_modified_date  = detailsData.last_modified_date;
                        detailsData.tax_amount          = item.tax_amount;
                        detailsData.line_total          = item.line_total;
                        detailsData.size_id             = item.size_id;
                        detailsData.status              = item.status;
                        detailsData.vat_pcnt            = item.vat_pcnt;
                        detailsData.tax_pcnt            = item.tax_pcnt;
                        detailsData.product_category_id = item.product_category_id;
                        _entities.SaveChanges();
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        public long AddPurchaseOrder(PurchaseOrderModel purchaseOrderModel)
        {
            try
            {
                var poMaster      = purchaseOrderModel.PoMasterData;
                var poDetailsList = purchaseOrderModel.PoDetailsList;

                // generate order_no
                long poSerial = _entities.purchase_order_master.Max(po => (long?)po.purchase_order_master_id) ?? 0;

                if (poSerial != 0)
                {
                    poSerial++;
                }
                else
                {
                    poSerial++;
                }
                var poStr = poSerial.ToString().PadLeft(7, '0');

                //string orderNo = "ORD/" + DateTime.Now.Year + "/" + poSerial;
                string orderNo = "PO-" + poStr;
                poMaster.purchase_order_reference_number = purchaseOrderModel.PoMasterData.purchase_order_reference_number;
                poMaster.supplier_id = purchaseOrderModel.PoMasterData.supplier_id;
                poMaster.currency_id = purchaseOrderModel.PoMasterData.currency_id;
                poMaster.total_amount_including_vattax = purchaseOrderModel.PoMasterData.total_amount_including_vattax;
                poMaster.status                      = purchaseOrderModel.PoMasterData.status;
                poMaster.company_id                  = purchaseOrderModel.PoMasterData.company_id;
                poMaster.order_date                  = Convert.ToDateTime(purchaseOrderModel.PoMasterData.order_date);
                poMaster.shipping_terms_id           = purchaseOrderModel.PoMasterData.shipping_terms_id;
                poMaster.shipping_method_id          = purchaseOrderModel.PoMasterData.shipping_method_id;
                poMaster.expected_shipment_date      = Convert.ToDateTime(purchaseOrderModel.PoMasterData.expected_shipment_date);
                poMaster.vat_total                   = purchaseOrderModel.PoMasterData.vat_total;
                poMaster.terms_n_condition           = purchaseOrderModel.PoMasterData.terms_n_condition;
                poMaster.created_by                  = purchaseOrderModel.PoMasterData.created_by;
                poMaster.created_date                = DateTime.Now;
                poMaster.updated_by                  = purchaseOrderModel.PoMasterData.updated_by;
                poMaster.updated_date                = DateTime.Now;
                poMaster.remarks                     = purchaseOrderModel.PoMasterData.remarks;
                poMaster.is_active                   = true;
                poMaster.noc_number                  = purchaseOrderModel.PoMasterData.noc_number;
                poMaster.verify_status               = "Not Verified";
                poMaster.approve_status              = "Not Approved";
                poMaster.is_deleted                  = false;
                poMaster.batch_id                    = 0;
                poMaster.order_no                    = orderNo;
                poMaster.tax_total                   = purchaseOrderModel.PoMasterData.tax_total;
                poMaster.total_amount_without_vattax = purchaseOrderModel.PoMasterData.total_amount_without_vattax;

                _entities.purchase_order_master.Add(poMaster);
                _entities.SaveChanges();
                long purchaseOrderMasterId = poMaster.purchase_order_master_id;
                foreach (var item in poDetailsList)
                {
                    var poDetails = new purchase_order_details
                    {
                        purchase_order_master_id = purchaseOrderMasterId,
                        product_id          = item.product_id,
                        unit_id             = item.unit_id,
                        unit_price          = item.unit_price,
                        quantity            = item.quantity,
                        product_version_id  = item.product_version_id,
                        amount              = item.amount,
                        brand_id            = item.brand_id,
                        color_id            = item.color_id,
                        receive_qty         = 0,
                        pi_quantity         = 0,
                        vat_amount          = item.vat_amount,
                        last_modified_date  = DateTime.Now,
                        tax_amount          = item.tax_amount,
                        line_total          = item.line_total,
                        size_id             = item.size_id,
                        status              = item.status,
                        vat_pcnt            = item.vat_pcnt,
                        tax_pcnt            = item.tax_pcnt,
                        product_category_id = item.product_category_id
                    };

                    _entities.purchase_order_details.Add(poDetails);
                    _entities.SaveChanges();
                }
                return(1);
            }
            catch (Exception ex)
            {
                return(0);
            }
        }