예제 #1
0
        private void waybillProductionCompleted(IDAL dal, ProductionOrder po)
        {
            MikroOperations mikro = new MikroOperations(dal);

            // önceki tamamlanan kayıtları oku, son satır numarasını almak için
            IEnumerable <MikroWaybill> currentwb = mikro.ReadWaybill(DateTime.Now, "OPR", (int)po.ProductionOrderId);
            var item = currentwb.OrderByDescending(x => x.DocumentRowNo).First();

            // sistemsel olarak kalan ama gerçekte kayıptan dolayı kalmamış olan giriş ürünlerini 0'la.
            MikroWaybill wb = new MikroWaybill();

            wb.TransactionDate    = DateTime.Now;
            wb.TransactionKind    = (int)TransactionKind.Uretim;
            wb.TransactionType    = (int)TransactionType.Cikis;
            wb.DocumentDate       = DateTime.Now;
            wb.DocumentSerial     = "OPR";
            wb.DocumentNo         = (int)po.ProductionOrderId;
            wb.DocumentType       = (int)DocumentType.UretimFisi;
            wb.IsRefund           = false;
            wb.ReceiverWarehouse  = 1;
            wb.SenderWarehouse    = (int)WarehouseList.Production;
            wb.IntakeShipmentDate = DateTime.Now;
            int rowno;

            rowno = item.DocumentRowNo + 1;

            IUniParameter prmProduction = dal.CreateParameter("Production", po.Production);
            IEnumerable <ProductionContent> contents = dal.List <ProductionContent>("WHS_LST_PRODUCTIONCONTENT_SP", prmProduction).ToList();

            foreach (ProductionContent p in contents)
            {
                decimal completed = (decimal)po.CompletedQuantity;
                wb.Quantity = p.AllocatedQuantity;
                Product pInfo = dal.Read <Product>(p.Product);
                wb.ProductCode = pInfo.Code;
                switch (pInfo.SaleVAT)
                {
                case 0: wb.VATCode = 1; break;

                case 1: wb.VATCode = 2; break;

                case 8: wb.VATCode = 3; break;

                case 18: wb.VATCode = 4; break;

                default: wb.VATCode = 0; break;
                }
                wb.DocumentRowNo = rowno++;
                mikro.CreateWaybill(wb);
            }
        }
예제 #2
0
        private void waybillFromMainWHtoProductionWH(IDAL dal, ProductionOrder po)
        {
            MikroOperations mikro = new MikroOperations(dal);
            MikroWaybill    wb    = new MikroWaybill();

            wb.TransactionDate    = DateTime.Now;
            wb.TransactionKind    = (int)TransactionKind.Transfer;
            wb.TransactionType    = (int)TransactionType.DepoTransfer;
            wb.DocumentDate       = DateTime.Now;
            wb.DocumentSerial     = "OMP";
            wb.DocumentNo         = (int)po.ProductionOrderId;
            wb.DocumentType       = (int)DocumentType.DepoTransferFisi;
            wb.IsRefund           = false;
            wb.ReceiverWarehouse  = (int)WarehouseList.Production;
            wb.SenderWarehouse    = (int)WarehouseList.Main;
            wb.IntakeShipmentDate = DateTime.Now;
            int rowno = 1;

            foreach (ProductionContent p in po.contents)
            {
                wb.Quantity = p.RequiredPackage * p.UnitWeight;
                Product pInfo = dal.Read <Product>(p.Product);
                wb.ProductCode = pInfo.Code;
                switch (pInfo.SaleVAT)
                {
                case 0: wb.VATCode = 1; break;

                case 1: wb.VATCode = 2; break;

                case 8: wb.VATCode = 3; break;

                case 18: wb.VATCode = 4; break;

                default: wb.VATCode = 0; break;
                }
                wb.DocumentRowNo = rowno++;
                mikro.CreateWaybill(wb);
            }
        }
예제 #3
0
        public void CreateWaybill(MikroWaybill dataObject)
        {
            IUniParameter prmTransactionDate    = _dal.CreateParameter("TransactionDate", dataObject.TransactionDate);
            IUniParameter prmDocumentSerial     = _dal.CreateParameter("DocumentSerial", dataObject.DocumentSerial);
            IUniParameter prmDocumentNo         = _dal.CreateParameter("DocumentNo", dataObject.DocumentNo);
            IUniParameter prmDocumentRowNo      = _dal.CreateParameter("DocumentRowNo", dataObject.DocumentRowNo);
            IUniParameter prmDocumentInfo       = _dal.CreateParameter("DocumentInfo", dataObject.DocumentInfo);
            IUniParameter prmTransactionType    = _dal.CreateParameter("TransactionType", dataObject.TransactionType);
            IUniParameter prmTransactionKind    = _dal.CreateParameter("TransactionKind", dataObject.TransactionKind);
            IUniParameter prmIsRefund           = _dal.CreateParameter("IsRefund", dataObject.IsRefund?1:0);
            IUniParameter prmDocumentType       = _dal.CreateParameter("DocumentType", dataObject.DocumentType);
            IUniParameter prmDocumentDate       = _dal.CreateParameter("DocumentDate", dataObject.DocumentDate);
            IUniParameter prmProductCode        = _dal.CreateParameter("ProductCode", dataObject.ProductCode);
            IUniParameter prmQuantity           = _dal.CreateParameter("Quantity", dataObject.Quantity);
            IUniParameter prmVATCode            = _dal.CreateParameter("VATCode", dataObject.VATCode);
            IUniParameter prmDescription        = _dal.CreateParameter("Description", dataObject.Description);
            IUniParameter prmReceiverWarehouse  = _dal.CreateParameter("ReceiverWarehouse", dataObject.ReceiverWarehouse);
            IUniParameter prmSenderWarehouse    = _dal.CreateParameter("SenderWarehouse", dataObject.SenderWarehouse);
            IUniParameter prmIntakeShipmentDate = _dal.CreateParameter("IntakeShipmentDate", dataObject.IntakeShipmentDate);

            _dal.ExecuteNonQuery("MIK_INS_WAYBILL_SP", prmTransactionDate, prmDocumentSerial, prmDocumentNo, prmDocumentRowNo, prmDocumentInfo, prmTransactionType,
                                 prmTransactionKind, prmIsRefund, prmDocumentType, prmDocumentDate, prmProductCode, prmQuantity, prmVATCode, prmDescription, prmReceiverWarehouse,
                                 prmSenderWarehouse, prmIntakeShipmentDate);
        }
예제 #4
0
        private void waybillProduction(IDAL dal, ProductionOrder po)
        {
            MikroOperations mikro = new MikroOperations(dal);

            // önceki tamamlanan kayıtları oku, son satır numarasını almak için
            IEnumerable <MikroWaybill> currentwb = mikro.ReadWaybill(DateTime.Now, "OPR", (int)po.ProductionOrderId);
            int lastRowNo = 0;

            if (currentwb.Count() > 0)
            {
                var item = currentwb.OrderByDescending(x => x.DocumentRowNo).First();
                lastRowNo = item.DocumentRowNo + 1;
            }


            // Üretim depoya giriş satırını oluştur
            MikroWaybill wb = new MikroWaybill();

            wb.TransactionDate    = DateTime.Now;
            wb.TransactionKind    = (int)TransactionKind.Uretim;
            wb.TransactionType    = (int)TransactionType.Giris;
            wb.DocumentDate       = DateTime.Now;
            wb.DocumentSerial     = "OPR";
            wb.DocumentNo         = (int)po.ProductionOrderId;
            wb.DocumentType       = (int)DocumentType.UretimFisi;
            wb.IsRefund           = false;
            wb.ReceiverWarehouse  = (int)WarehouseList.Production;
            wb.SenderWarehouse    = 1;
            wb.IntakeShipmentDate = DateTime.Now;
            Production prInfo        = dal.Read <Production>(po.Production);
            Product    prProductInfo = dal.Read <Product>(prInfo.Product);

            wb.ProductCode = prProductInfo.Code;
            wb.Quantity    = (decimal)po.PartialCompletion;
            int rowno;

            wb.DocumentRowNo = lastRowNo;
            mikro.CreateWaybill(wb);

            rowno = lastRowNo + 1;

            // üretim sırasında tüketilen ürünlerin çıkışını yap.
            IUniParameter prmProduction = dal.CreateParameter("Production", po.Production);
            IEnumerable <ProductionContent> contents = dal.List <ProductionContent>("WHS_LST_PRODUCTIONCONTENT_SP", prmProduction).ToList();

            foreach (ProductionContent p in contents)
            {
                wb.ReceiverWarehouse = 1;
                wb.SenderWarehouse   = (int)WarehouseList.Production;
                wb.TransactionType   = (int)TransactionType.Cikis;
                wb.Quantity          = (decimal)po.PartialCompletion * p.ShareRate / 100;
                Product pInfo = dal.Read <Product>(p.Product);
                wb.ProductCode = pInfo.Code;
                switch (pInfo.SaleVAT)
                {
                case 0: wb.VATCode = 1; break;

                case 1: wb.VATCode = 2; break;

                case 8: wb.VATCode = 3; break;

                case 18: wb.VATCode = 4; break;

                default: wb.VATCode = 0; break;
                }
                wb.DocumentRowNo = rowno++;
                mikro.CreateWaybill(wb);
            }

            // üretim depodan merkez depoya aktarımı yap.
            wb.TransactionKind   = (int)TransactionKind.Transfer;
            wb.TransactionType   = (int)TransactionType.DepoTransfer;
            wb.DocumentType      = (int)DocumentType.DepoTransferFisi;
            wb.ReceiverWarehouse = (int)WarehouseList.Main;
            wb.SenderWarehouse   = (int)WarehouseList.Production;
            wb.ProductCode       = prProductInfo.Code;
            wb.Quantity          = (decimal)po.PartialCompletion;
            wb.DocumentRowNo     = rowno++;
            mikro.CreateWaybill(wb);
        }