public static WebHome.Models.MIG3_1.C0401.Invoice CreateC0401(this InvoiceItem item) { var result = new WebHome.Models.MIG3_1.C0401.Invoice { Main = new WebHome.Models.MIG3_1.C0401.Main { Buyer = new WebHome.Models.MIG3_1.C0401.MainBuyer { Address = item.InvoiceBuyer.Address.GetEfficientStringMaxSize(0, 100).InsteadOfNullOrEmpty(""), CustomerNumber = item.InvoiceBuyer.CustomerNumber.GetEfficientStringMaxSize(0, 20).InsteadOfNullOrEmpty(""), EmailAddress = item.InvoiceBuyer.EMail.GetEfficientStringMaxSize(0, 80).InsteadOfNullOrEmpty(""), FacsimileNumber = item.InvoiceBuyer.Fax.GetEfficientStringMaxSize(0, 26).InsteadOfNullOrEmpty(""), Identifier = item.InvoiceBuyer.ReceiptNo, Name = item.InvoiceBuyer.IsB2C() ? Encoding.GetEncoding(950).GetBytes(item.InvoiceBuyer.Name.InsteadOfNullOrEmpty("")).Length == 4 ? item.InvoiceBuyer.Name : ValidityAgent.GenerateRandomCode(4) : String.IsNullOrEmpty(item.InvoiceBuyer.Name) ? item.InvoiceBuyer.ReceiptNo : item.InvoiceBuyer.Name, PersonInCharge = item.InvoiceBuyer.PersonInCharge.GetEfficientStringMaxSize(0, 30).InsteadOfNullOrEmpty(""), RoleRemark = item.InvoiceBuyer.RoleRemark.GetEfficientStringMaxSize(0, 40).InsteadOfNullOrEmpty(""), TelephoneNumber = item.InvoiceBuyer.Phone.GetEfficientStringMaxSize(0, 26).InsteadOfNullOrEmpty("") }, BuyerRemark = String.IsNullOrEmpty(item.BuyerRemark) ? WebHome.Models.MIG3_1.C0401.BuyerRemarkEnum.Item1 : (WebHome.Models.MIG3_1.C0401.BuyerRemarkEnum) int.Parse(item.BuyerRemark), BuyerRemarkSpecified = !String.IsNullOrEmpty(item.BuyerRemark), Category = item.Category, CheckNumber = item.CheckNo, CustomsClearanceMark = String.IsNullOrEmpty(item.CustomsClearanceMark) ? WebHome.Models.MIG3_1.C0401.CustomsClearanceMarkEnum.Item1 : (WebHome.Models.MIG3_1.C0401.CustomsClearanceMarkEnum) int.Parse(item.CustomsClearanceMark), CustomsClearanceMarkSpecified = !String.IsNullOrEmpty(item.CustomsClearanceMark), InvoiceType = (WebHome.Models.MIG3_1.C0401.InvoiceTypeEnum)((int)item.InvoiceType), //DonateMark = (WebHome.Models.MIG3_1.C0401.DonateMarkEnum)(int.Parse(item.DonateMark)), DonateMark = string.IsNullOrEmpty(item.DonateMark) ? WebHome.Models.MIG3_1.C0401.DonateMarkEnum.Item0 : (WebHome.Models.MIG3_1.C0401.DonateMarkEnum)(int.Parse(item.DonateMark)), CarrierType = item.InvoiceCarrier != null ? item.InvoiceCarrier.CarrierType : "", //CarrierTypeSpecified = item.InvoiceCarrier != null ? true : false, CarrierId1 = item.InvoiceCarrier != null ? item.InvoiceCarrier.CarrierNo : "", CarrierId2 = item.InvoiceCarrier != null ? item.InvoiceCarrier.CarrierNo2 : "", //PrintMark = item.CDS_Document.DocumentPrintLogs.Any(l => l.TypeID == (int)Model.Locale.Naming.DocumentTypeDefinition.E_Invoice) ? "Y" : "N" PrintMark = item.PrintMark, NPOBAN = item.InvoiceDonation != null ? item.InvoiceDonation.AgencyCode : "", RandomNumber = item.RandomNo, GroupMark = item.GroupMark, InvoiceDate = String.Format("{0:yyyyMMdd}", item.InvoiceDate.Value), InvoiceTime = item.InvoiceDate.Value, //InvoiceTimeSpecified = false, InvoiceNumber = String.Format("{0}{1}", item.TrackCode, item.No), MainRemark = item.Remark.GetEfficientStringMaxSize(0, 200), //PermitNumber = item.PermitNumber, //PermitDate = item.PermitDate.HasValue ? String.Format("{0:yyyyMMdd}", item.PermitDate.Value) : null, //PermitWord = item.PermitWord, RelateNumber = item.RelateNumber, //TaxCenter = item.TaxCenter, Seller = new WebHome.Models.MIG3_1.C0401.MainSeller { Address = item.InvoiceSeller.Address.GetEfficientStringMaxSize(0, 100).InsteadOfNullOrEmpty(""), //.InvoiceSeller.Address, CustomerNumber = item.InvoiceSeller.CustomerID.GetEfficientStringMaxSize(0, 20).InsteadOfNullOrEmpty(""), //.InvoiceSeller.CustomerID, EmailAddress = item.InvoiceSeller.EMail.GetEfficientStringMaxSize(0, 80).InsteadOfNullOrEmpty(""), //.InvoiceSeller.EMail, FacsimileNumber = item.InvoiceSeller.Fax.GetEfficientStringMaxSize(0, 26).InsteadOfNullOrEmpty(""), //.InvoiceSeller.Fax, Identifier = item.InvoiceSeller.ReceiptNo, //.InvoiceSeller.ReceiptNo, Name = item.InvoiceSeller.CustomerName.GetEfficientStringMaxSize(0, 60).InsteadOfNullOrEmpty(""), //.InvoiceSeller.Name, PersonInCharge = item.Organization.UndertakerName.GetEfficientStringMaxSize(0, 30).InsteadOfNullOrEmpty(""), RoleRemark = item.InvoiceSeller.RoleRemark.GetEfficientStringMaxSize(0, 40).InsteadOfNullOrEmpty(""), //InvoiceSeller.RoleRemark, TelephoneNumber = item.InvoiceSeller.Phone.GetEfficientStringMaxSize(0, 26).InsteadOfNullOrEmpty("") } }, Details = buildC0401Details(item), Amount = new WebHome.Models.MIG3_1.C0401.Amount { CurrencySpecified = false, DiscountAmount = item.InvoiceAmountType.DiscountAmount.HasValue ? (long)item.InvoiceAmountType.DiscountAmount.Value : 0, DiscountAmountSpecified = item.InvoiceAmountType.DiscountAmount.HasValue, ExchangeRateSpecified = false, OriginalCurrencyAmountSpecified = false, //SalesAmount = item.InvoiceAmountType.SalesAmount.HasValue ? (long)item.InvoiceAmountType.SalesAmount.Value : 0, SalesAmount = item.InvoiceBuyer.ReceiptNo == "0000000000" ? (long)item.InvoiceAmountType.TotalAmount.Value : (long)item.InvoiceAmountType.SalesAmount.Value, FreeTaxSalesAmount = (item.InvoiceAmountType.TaxType == 3) ? (long)item.InvoiceAmountType.SalesAmount.Value : 0, ZeroTaxSalesAmount = (item.InvoiceAmountType.TaxType == 2) ? (long)item.InvoiceAmountType.SalesAmount.Value : 0, TaxAmount = item.InvoiceBuyer.ReceiptNo == "0000000000" ? 0 : item.InvoiceAmountType.TaxAmount.HasValue ? (long)item.InvoiceAmountType.TaxAmount.Value : 0, TaxRate = item.InvoiceAmountType.TaxRate.HasValue ? item.InvoiceAmountType.TaxRate.Value : 0.05m, TaxType = (WebHome.Models.MIG3_1.C0401.TaxTypeEnum)((int)item.InvoiceAmountType.TaxType.Value), TotalAmount = item.InvoiceAmountType.TotalAmount.HasValue ? (long)item.InvoiceAmountType.TotalAmount.Value : 0 } }; return(result); }
public static WebHome.Models.MIG3_1.D0401.Allowance CreateD0401(this InvoiceAllowance item) { var result = new WebHome.Models.MIG3_1.D0401.Allowance { Main = new WebHome.Models.MIG3_1.D0401.Main { AllowanceNumber = item.AllowanceNumber, AllowanceDate = String.Format("{0:yyyyMMdd}", item.AllowanceDate), AllowanceType = (WebHome.Models.MIG3_1.D0401.AllowanceTypeEnum)((int)item.AllowanceType), Buyer = new WebHome.Models.MIG3_1.D0401.MainBuyer { Address = string.IsNullOrEmpty(item.InvoiceAllowanceBuyer.Address)? "": item.InvoiceAllowanceBuyer.Address.Length > 100? item.InvoiceAllowanceBuyer.Address.Substring(0, 100): item.InvoiceAllowanceBuyer.Address, //CustomerNumber = item.InvoiceAllowanceBuyer.CustomerName, EmailAddress = "",//item.InvoiceAllowanceBuyer.EMail, FacsimileNumber = String.IsNullOrEmpty(item.InvoiceAllowanceBuyer.Fax)? "": item.InvoiceAllowanceBuyer.Fax.Length > 26? item.InvoiceAllowanceBuyer.Fax.Substring(0, 26): item.InvoiceAllowanceBuyer.Fax, Identifier = item.InvoiceAllowanceBuyer.ReceiptNo, Name = item.InvoiceAllowanceBuyer.IsB2C() ? Encoding.GetEncoding(950).GetBytes(item.InvoiceAllowanceBuyer.Name.InsteadOfNullOrEmpty("")).Length == 4 ? item.InvoiceAllowanceBuyer.Name : ValidityAgent.GenerateRandomCode(4) : String.IsNullOrEmpty(item.InvoiceAllowanceBuyer.Name) ? item.InvoiceAllowanceBuyer.ReceiptNo : item.InvoiceAllowanceBuyer.Name, PersonInCharge = String.IsNullOrEmpty(item.InvoiceAllowanceBuyer.PersonInCharge)? "": item.InvoiceAllowanceBuyer.PersonInCharge.Length > 30? item.InvoiceAllowanceBuyer.PersonInCharge.Substring(0, 30): item.InvoiceAllowanceBuyer.PersonInCharge, RoleRemark = item.InvoiceAllowanceBuyer.RoleRemark, TelephoneNumber = "",//item.InvoiceAllowanceBuyer.Phone, }, Seller = new WebHome.Models.MIG3_1.D0401.MainSeller { Address = String.IsNullOrEmpty(item.InvoiceAllowanceSeller.Address)? "": item.InvoiceAllowanceSeller.Address.Length > 100 ? item.InvoiceAllowanceSeller.Address.Substring(0, 100) : item.InvoiceAllowanceSeller.Address, //CustomerNumber = item.InvoiceAllowanceSeller.CustomerName, EmailAddress = "",//item.InvoiceAllowanceSeller.EMail, FacsimileNumber = String.IsNullOrEmpty(item.InvoiceAllowanceSeller.Fax)? "": item.InvoiceAllowanceSeller.Fax.Length > 26? item.InvoiceAllowanceSeller.Fax.Substring(0, 26): item.InvoiceAllowanceSeller.Fax, Identifier = item.InvoiceAllowanceSeller.ReceiptNo, Name = item.InvoiceAllowanceSeller.Name, PersonInCharge = String.IsNullOrEmpty(item.InvoiceAllowanceSeller.PersonInCharge)? "": item.InvoiceAllowanceSeller.PersonInCharge.Length > 30? item.InvoiceAllowanceSeller.PersonInCharge.Substring(0, 30): item.InvoiceAllowanceSeller.PersonInCharge, RoleRemark = item.InvoiceAllowanceSeller.RoleRemark, TelephoneNumber = "",//item.InvoiceAllowanceSeller.Phone, }, }, Amount = new WebHome.Models.MIG3_1.D0401.Amount { TaxAmount = item.TaxAmount.HasValue ? (long)item.TaxAmount.Value : 0, TotalAmount = item.TotalAmount.HasValue ? (long)item.TotalAmount.Value : 0, }, }; result.Details = item.InvoiceAllowanceDetails.Select(d => new WebHome.Models.MIG3_1.D0401.DetailsProductItem { AllowanceSequenceNumber = d.InvoiceAllowanceItem.No.ToString(), Amount = d.InvoiceAllowanceItem.Amount.HasValue ? d.InvoiceAllowanceItem.Amount.Value : 0m, OriginalDescription = d.InvoiceAllowanceItem.OriginalDescription, OriginalInvoiceDate = String.Format("{0:yyyyMMdd}", d.InvoiceAllowanceItem.InvoiceDate), OriginalInvoiceNumber = d.InvoiceAllowanceItem.InvoiceNo, OriginalSequenceNumber = d.InvoiceAllowanceItem.OriginalSequenceNo.HasValue ? d.InvoiceAllowanceItem.OriginalSequenceNo.Value.ToString() : "1", Quantity = d.InvoiceAllowanceItem.Piece.HasValue ? d.InvoiceAllowanceItem.Piece.Value : 0.00000M, Tax = (long)d.InvoiceAllowanceItem.Tax.Value, TaxType = (WebHome.Models.MIG3_1.D0401.DetailsProductItemTaxType)(int) d.InvoiceAllowanceItem.TaxType, Unit = d.InvoiceAllowanceItem.PieceUnit, UnitPrice = d.InvoiceAllowanceItem.UnitCost.HasValue ? d.InvoiceAllowanceItem.UnitCost.Value : 0, }).ToArray(); return(result); }