Example #1
0
        public async Task <IActionResult> Post([FromBody] WorkOrderMasterModelDTO obj)
        {
            try
            {
                if (!obj.VwWsWorkOrderMaster.WorkOrderMasterId.HasValue)
                {
                    return(BadRequest("WorkOrderMasterId eksik!"));
                }

                var objMaster = new WorkOrderMasterModel
                {
                    DeclarationType   = obj.VwWsWorkOrderMaster.DeclarationType,
                    WorkOrderNo       = $"{obj.VwWsWorkOrderMaster.WorkOrderNo}",
                    WorkOrderMasterId = obj.VwWsWorkOrderMaster.WorkOrderMasterId.Value,
                    InvoiceList       = new List <InvoiceModel>(),
                };

                foreach (var woInv in obj.VwWsWorkOrderInvoices)
                {
                    var objInvoice = new InvoiceModel
                    {
                        AgentName         = woInv.AgentName,
                        AwbNo             = woInv.AwbNo,
                        BLNo              = woInv.Blno,
                        ConsgnAddress     = woInv.ConsgnAddress,
                        ConsgnCity        = woInv.ConsgnCity,
                        ConsgnCountry     = woInv.ConsgnCountry,
                        ConsgnName        = woInv.ConsgnName,
                        ConsgnNo          = woInv.ConsgnNo,
                        ContainerNo       = woInv.ContainerNo,
                        Customs           = woInv.Customs,
                        DeliveryLocation  = woInv.DeliveryLocation,
                        EntryExitCustoms  = woInv.EntryExitCustoms,
                        FreightAmount     = woInv.FreightAmount,
                        FreightCurrency   = woInv.FreightCurrency,
                        GtbReferenceNo    = woInv.GtbReferenceNo,
                        Incoterms         = woInv.Incoterms,
                        InsuranceAmount   = woInv.InsuranceAmount,
                        InsuranceCurrency = woInv.InsuranceCurrency,
                        InvoiceCurrency   = woInv.InvoiceCurrency,
                        InvoiceId         = woInv.InvoiceId.Value,
                        PaymentMethod     = woInv.PaymentMethod,
                        PlateNo           = woInv.PlateNo,
                        SenderAddress     = woInv.SenderAddress,
                        SenderCity        = woInv.SenderCity,
                        SenderCountry     = woInv.SenderCountry,
                        SenderName        = woInv.SenderName,
                        SenderNo          = woInv.SenderNo,
                        TransptrName      = woInv.TransptrName,
                        VesselName        = woInv.VesselName,
                        InvoiceDetailList = new List <InvoiceDetailModel>(),
                    };

                    if (woInv.InvoiceAmount.HasValue)
                    {
                        objInvoice.InvoiceAmount = woInv.InvoiceAmount.Value;
                    }
                    if (woInv.WorkOrderMasterId.HasValue)
                    {
                        objInvoice.WorkOrderMasterId = woInv.WorkOrderMasterId.Value;
                    }

                    foreach (var itemInvoiceDetail in obj.VwWsWorkOrderInvoiceDetails)
                    {
                        var objInvoiceDetail = new InvoiceDetailModel
                        {
                            Uom               = itemInvoiceDetail.Uom,
                            HsCode            = itemInvoiceDetail.HsCode,
                            PkgType           = itemInvoiceDetail.PkgType,
                            ProductNo         = itemInvoiceDetail.ProductNo,
                            InvoiceNo         = itemInvoiceDetail.InvoiceNo,
                            DescGoods         = itemInvoiceDetail.DescGoods,
                            CommclDesc        = itemInvoiceDetail.CommclDesc,
                            IntrnlAgmt        = itemInvoiceDetail.IntrnlAgmt,
                            CountryOfOrigin   = itemInvoiceDetail.CountryOfOrigin,
                            IncentiveLineNo   = itemInvoiceDetail.IncentiveLineNo,
                            ProducerCompany   = itemInvoiceDetail.ProducerCompany,
                            ProducerCompanyNo = itemInvoiceDetail.ProducerCompanyNo,
                            NetWeight         = Convert.ToDouble(itemInvoiceDetail.NetWeight),
                            GrossWeight       = Convert.ToDouble(itemInvoiceDetail.GrossWeight),
                            InvoiceAmount     = Convert.ToDouble(itemInvoiceDetail.InvoiceAmount),
                        };

                        if (itemInvoiceDetail.ActualQuantity.HasValue)
                        {
                            objInvoiceDetail.ActualQuantity = itemInvoiceDetail.ActualQuantity.Value;
                        }
                        if (itemInvoiceDetail.InvoiceDate.HasValue)
                        {
                            objInvoiceDetail.InvoiceDate = itemInvoiceDetail.InvoiceDate.Value;
                        }
                        if (itemInvoiceDetail.InvoiceDetailId.HasValue)
                        {
                            objInvoiceDetail.InvoiceDetailId = itemInvoiceDetail.InvoiceDetailId.Value;
                        }
                        if (itemInvoiceDetail.InvoiceId.HasValue)
                        {
                            objInvoiceDetail.InvoiceId = itemInvoiceDetail.InvoiceId.Value;
                        }
                        if (itemInvoiceDetail.InvoiceQuantity.HasValue)
                        {
                            objInvoiceDetail.InvoiceQuantity = itemInvoiceDetail.InvoiceQuantity.Value;
                        }
                        if (itemInvoiceDetail.ItemNumber.HasValue)
                        {
                            objInvoiceDetail.ItemNumber = Convert.ToInt32(itemInvoiceDetail.ItemNumber.Value);
                        }
                        if (itemInvoiceDetail.NumberOfPackages.HasValue)
                        {
                            objInvoiceDetail.NumberOfPackages = itemInvoiceDetail.NumberOfPackages.Value;
                        }
                        if (itemInvoiceDetail.IncentiveDate.HasValue)
                        {
                            objInvoiceDetail.IncentiveDate = itemInvoiceDetail.IncentiveDate.Value;
                        }

                        objInvoice.InvoiceDetailList.Add(objInvoiceDetail);

                        foreach (var itemInvoiceTcgbDetail in obj.VwWsWorkOrderInvoiceDetailsTcgb)
                        {
                            var objInvoicetcgbDetail = new InvoiceDetailTcgbModel
                            {
                                Quantity            = itemInvoiceTcgbDetail.Quantity,
                                ItemNo              = itemInvoiceTcgbDetail.ItemNo,
                                DeclarationDate     = itemInvoiceTcgbDetail.DeclarationDate,
                                DeclarationNo       = itemInvoiceTcgbDetail.DeclarationNo,
                                Description         = itemInvoiceTcgbDetail.Description,
                                InvoiceDetailId     = itemInvoiceTcgbDetail.InvoiceDetailId,
                                InvoiceDetailTcgbId = itemInvoiceTcgbDetail.InvoiceDetailsTcgbId,
                            };

                            if (objInvoiceDetail.InvoiceDetailTcgbList == null)
                            {
                                objInvoiceDetail.InvoiceDetailTcgbList = new List <InvoiceDetailTcgbModel>();
                            }

                            if (objInvoicetcgbDetail.InvoiceDetailId == objInvoiceDetail.InvoiceDetailId)
                            {
                                objInvoiceDetail.InvoiceDetailTcgbList.Add(objInvoicetcgbDetail);
                            }
                        }
                    }

                    objMaster.InvoiceList.Add(objInvoice);
                }

#if DEBUG
                //var xsSubmit = new XmlSerializer(typeof(WorkOrderMasterModel));
                //var xml = string.Empty;

                //using (var sww = new StringWriter())
                //using (var writer = XmlWriter.Create(sww))
                //{
                //    xsSubmit.Serialize(writer, objMaster);
                //    xml = sww.ToString();
                //}
#endif

                var client = new Service1Client();

                var result = await client.SetWorkOrderMastersModelAsync(obj.VwWsWorkOrderMaster.UserNameWs, obj.VwWsWorkOrderMaster.PasswordWs, objMaster);

                return(Ok(result.ResultCode + "-" + result.ResultName));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public async Task <string> SetWorkOrderMastersModel(int id)
        {
            try
            {
#if DEBUG
                // id = 34;
#endif
                var master             = _uow.VwWsWorkOrderMaster.Single(x => x.StokCikisId == id);
                var invoices           = _uow.VwWsWorkOrderInvoice.Search(x => x.StokCikisId == id);
                var invoiceDetails     = _uow.VwWsWorkOrderInvoiceDetails.Search(x => x.StokCikisId == id);
                var invoiceDetailsTcgb = _uow.VwWsWorkOrderInvoiceDetailsTcgb.Search(x => x.StokCikisId == id);

                if (master == null)
                {
                    return("Master kaydı null geldi. Bir sorun var!");
                }

                var dto = new WorkOrderMasterModelDTO
                {
                    VwWsWorkOrderMaster = new VwWsWorkOrderMasterDTO()
                    {
                        DeclarationType   = master.DeclarationType,
                        UserNameWs        = master.UserNameWs,
                        PasswordWs        = master.PasswordWs,
                        StokCikisId       = master.StokCikisId,
                        WorkOrderMasterId = master.WorkOrderMasterId,
                        WorkOrderNo       = master.WorkOrderNo
                    },
                    VwWsWorkOrderInvoices           = new List <VwWsWorkOrderInvoiceDTO>(),
                    VwWsWorkOrderInvoiceDetails     = new List <VwWsWorkOrderInvoiceDetailsDTO>(),
                    VwWsWorkOrderInvoiceDetailsTcgb = new List <VwWsWorkOrderInvoiceDetailsTcgbDto>()
                };

                foreach (var invoice in invoices)
                {
                    dto.VwWsWorkOrderInvoices.Add(new VwWsWorkOrderInvoiceDTO()
                    {
                        AgentName         = invoice.AgentName,
                        AwbNo             = invoice.AwbNo,
                        Blno              = invoice.Blno,
                        ConsgnAddress     = invoice.ConsgnAddress,
                        ConsgnCity        = invoice.ConsgnCity,
                        ConsgnCountry     = invoice.ConsgnCountry,
                        ConsgnName        = invoice.ConsgnName,
                        ConsgnNo          = invoice.ConsgnNo,
                        ContainerNo       = invoice.ContainerNo,
                        Customs           = invoice.Customs,
                        DeliveryLocation  = invoice.DeliveryLocation,
                        EntryExitCustoms  = invoice.EntryExitCustoms,
                        FreightAmount     = invoice.FreightAmount,
                        FreightCurrency   = invoice.FreightCurrency,
                        GtbReferenceNo    = invoice.GtbReferenceNo,
                        Incoterms         = invoice.Incoterms,
                        InsuranceAmount   = invoice.InsuranceAmount,
                        InsuranceCurrency = invoice.InsuranceCurrency,
                        InvoiceAmount     = invoice.InvoiceAmount,
                        InvoiceCurrency   = invoice.InvoiceCurrency,
                        InvoiceId         = invoice.InvoiceId,
                        PaymentMethod     = invoice.PaymentMethod,
                        PlateNo           = invoice.PlateNo,
                        SenderAddress     = invoice.SenderAddress,
                        SenderCity        = invoice.SenderCity,
                        SenderCountry     = invoice.SenderCountry,
                        SenderName        = invoice.SenderName,
                        SenderNo          = invoice.SenderNo,
                        StokCikisId       = invoice.StokCikisId,
                        TransptrName      = invoice.TransptrName,
                        VesselName        = invoice.VesselName,
                        WorkOrderMasterId = invoice.WorkOrderMasterId,
                        WorkOrderNo       = invoice.WorkOrderNo
                    });
                }

                foreach (var detail in invoiceDetails.OrderBy(x => x.ItemNumber))
                {
                    dto.VwWsWorkOrderInvoiceDetails.Add(new VwWsWorkOrderInvoiceDetailsDTO()
                    {
                        ActualQuantity    = detail.ActualQuantity,
                        CommclDesc        = detail.CommclDesc,
                        CountryOfOrigin   = detail.CountryOfOrigin,
                        DescGoods         = detail.DescGoods,
                        GrossWeight       = detail.GrossWeight,
                        HsCode            = detail.HsCode,
                        IncentiveLineNo   = detail.IncentiveLineNo,
                        IntrnlAgmt        = detail.IntrnlAgmt,
                        InvoiceAmount     = detail.InvoiceAmount,
                        InvoiceDate       = detail.InvoiceDate,
                        IncentiveDate     = detail.IncentiveDate,
                        InvoiceDetailId   = detail.InvoiceDetailId,
                        InvoiceId         = detail.InvoiceId,
                        InvoiceNo         = detail.InvoiceNo,
                        InvoiceQuantity   = detail.InvoiceQuantity,
                        ItemNumber        = detail.ItemNumber,
                        NetWeight         = detail.NetWeight,
                        NumberOfPackages  = detail.NumberOfPackages,
                        PkgType           = detail.PkgType,
                        ProducerCompany   = detail.ProducerCompany,
                        ProducerCompanyNo = detail.ProducerCompanyNo,
                        ProductNo         = detail.ProductNo,
                        StokCikisId       = detail.StokCikisId,
                        Uom = detail.Uom,
                        WorkOrderMasterId = detail.WorkOrderMasterId,
                        WorkOrderNo       = detail.WorkOrderNo,
                    });
                }

                foreach (var detailTcgb in invoiceDetailsTcgb)
                {
                    dto.VwWsWorkOrderInvoiceDetailsTcgb.Add(new VwWsWorkOrderInvoiceDetailsTcgbDto()
                    {
                        StokCikisId          = detailTcgb.StokCikisId,
                        DeclarationDate      = detailTcgb.DeclarationDate,
                        DeclarationNo        = detailTcgb.DeclarationNo,
                        Description          = detailTcgb.Description,
                        InvoiceDetailId      = detailTcgb.InvoiceDetailId,
                        InvoiceDetailsTcgbId = detailTcgb.InvoiceDetailsTcgbId,
                        ItemNo   = detailTcgb.ItemNo,
                        Quantity = detailTcgb.Quantity
                    });
                }

                var client  = _clientFactory.CreateClient();
                var content = JsonConvert.SerializeObject(dto);
                var ws      = await client.PostAsync(WebServiceUrl, new StringContent(content, System.Text.Encoding.UTF8, "application/json"));

                ws.EnsureSuccessStatusCode();

                var deger = (await ws.Content.ReadAsStringAsync()).ToString();

                return(deger);
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }