/* public static XDocument DbToXelemet(ClassSync.ClassCloseTicketTmp.ChecksTicket check) * { * * XDocument doc; * * doc = new XDocument( * new XElement("check", * new XAttribute("barcodeCheck", check.BarCode)) * ) * ; * foreach (ClassSync.TypesPayDB type in ClassSync.TypesPayDB.t) * { * * decimal m = 0.0m; * * switch (type.NameCourt) * { * case "BankChecks": m = check.PayBankChecks; break; * case "BankCards": m = check.PayBankCards; break; * case "Cash": m = check.PayCash; break; * case "Resto": m = check.PayResto; break; * case "1": m = check.Pay1; break; * case "2": m = check.Pay2; break; * case "3": m = check.Pay3; break; * case "4": m = check.Pay4; break; * case "5": m = check.Pay5; break; * case "6": m = check.Pay6; break; * case "7": m = check.Pay7; break; * case "8": m = check.Pay8; break; * case "9": m = check.Pay9; break; * case "10": m = check.Pay10; break; * case "11": m = check.Pay11; break; * case "12": m = check.Pay12; break; * case "13": m = check.Pay13; break; * case "14": m = check.Pay14; break; * case "15": m = check.Pay15; break; * case "16": m = check.Pay16; break; * case "17": m = check.Pay17; break; * case "18": m = check.Pay18; break; * case "19": m = check.Pay19; break; * case "20": m = check.Pay20; break; * default: break; * } * * if (m != 0) doc.Element("check").Add(new XAttribute(type.NameCourt.TrimEnd(), m)); * } * doc.Element("check").Add(new XAttribute("Rendu", check.Rendu)); * doc.Element("check").Add(new XAttribute("sum", check.TotalTTC)); * doc.Element("check").Add(new XAttribute("date", check.Date)); * doc.Element("check").Add(new XAttribute("DCBC", check.DCBC)); * doc.Element("check").Add(new XAttribute("DCBC_BiloPoints", check.DCBC_BiloPoints)); * doc.Element("check").Add(new XAttribute("DCBC_DobavilePoints", check.DCBC_DobavilePoints)); * doc.Element("check").Add(new XAttribute("DCBC_OtnayliPoints", check.DCBC_OtnayliPoints)); * doc.Element("check").Add(new XAttribute("DCBC_OstalosPoints", check.DCBC_OstalosPoints)); * doc.Element("check").Add(new XAttribute("DCBC_name", check.DCBC_name)); * * * check.PayProducts = ClassSync.ClassCloseTicketTmp.PayProducts.sel(check.CustumerId); * * foreach (var p in check.PayProducts) * { * ClassProducts.product ptemp = ClassProducts.listProducts.Find(la => la.CustumerId == p.ProductId); * * * XElement el = ( * new XElement("product", * new XElement("CustumerId", p.ProductId), * new XElement("grp", ClassGroupProduct.getGrpId(ptemp == null ? 3 : ptemp.cusumerIdSubGroup).grp), * new XElement("qty", p.QTY), * new XElement("Name", p.Name), * new XElement("CodeBare", p.Barcode), * new XElement("price", p.PriceHT), * new XElement("tva", ClassTVA.listTVA.Find(l => l.val == p.TVA).id), * new XElement("total", p.Total), * new XElement("Discount", p.Discount), * new XElement("sumDiscount", p.sumDiscount) * ) * ); * doc.Element("check").Add(el); * } * * return doc; * } */ public static XDocument DbToXelemet(ClassSync.ClassCloseTicket.ChecksTicket check) { XDocument doc; doc = new XDocument( new XElement("check", new XAttribute("barcodeCheck", check.BarCode)) ) ; foreach (ClassSync.TypesPayDB type in ClassSync.TypesPayDB.t) { decimal m = 0.0m; switch (type.NameCourt) { case "BankChecks": m = check.PayBankChecks; break; case "BankCards": m = check.PayBankCards; break; case "Cash": m = check.PayCash; break; case "Resto": m = check.PayResto; break; case "1": m = check.Pay1; break; case "2": m = check.Pay2; break; case "3": m = check.Pay3; break; case "4": m = check.Pay4; break; case "5": m = check.Pay5; break; case "6": m = check.Pay6; break; case "7": m = check.Pay7; break; case "8": m = check.Pay8; break; case "9": m = check.Pay9; break; case "10": m = check.Pay10; break; case "11": m = check.Pay11; break; case "12": m = check.Pay12; break; case "13": m = check.Pay13; break; case "14": m = check.Pay14; break; case "15": m = check.Pay15; break; case "16": m = check.Pay16; break; case "17": m = check.Pay17; break; case "18": m = check.Pay18; break; case "19": m = check.Pay19; break; case "20": m = check.Pay20; break; default: break; } if (m != 0) { doc.Element("check").Add(new XAttribute(type.NameCourt.TrimEnd(), m)); } } doc.Element("check").Add(new XAttribute("Rendu", check.Rendu)); doc.Element("check").Add(new XAttribute("sum", check.TotalTTC)); doc.Element("check").Add(new XAttribute("date", check.Date)); doc.Element("check").Add(new XAttribute("DCBC", check.CheckDiscount.DCBC ?? "")); doc.Element("check").Add(new XAttribute("DCBC_BiloPoints", check.CheckDiscount.DCBC_BiloPoints ?? 0)); doc.Element("check").Add(new XAttribute("DCBC_DobavilePoints", check.CheckDiscount.DCBC_DobavilePoints ?? 0)); doc.Element("check").Add(new XAttribute("DCBC_OtnayliPoints", check.CheckDiscount.DCBC_OtnayliPoints ?? 0)); doc.Element("check").Add(new XAttribute("DCBC_OstalosPoints", check.CheckDiscount.DCBC_OstalosPoints ?? 0)); doc.Element("check").Add(new XAttribute("DCBC_name", check.CheckDiscount.DCBC_name ?? "")); check.PayProducts = new ClassSync.ClassCloseTicket.PayProducts().get(check.CustumerId); foreach (var p in check.PayProducts) { ClassProducts.product ptemp = ClassProducts.listProducts.Find(la => la.CustumerId == p.ProductId); XElement el = ( new XElement("product", new XElement("CustumerId", p.ProductId), new XElement("grp", ClassGroupProduct.getGrpId(ptemp == null ? 3 : ptemp.cusumerIdSubGroup).grp), new XElement("qty", p.QTY), new XElement("Name", p.Name), new XElement("CodeBare", p.Barcode), new XElement("price", p.PriceHT), new XElement("tva", ClassTVA.listTVA.Find(l => l.val == p.TVA).id), new XElement("total", p.Total), new XElement("Discount", p.Discount), new XElement("sumDiscount", p.sumDiscount) ) ); doc.Element("check").Add(el); } return(doc); }
public static product DbToVar(ClassSync.ProductDB.Products e) { try { product p = new product(); p.CustumerId = e.CustumerId; p.Name = e.Name.ToUpper(); p.Desc = e.Desc; p.tva = int.Parse(e.TVA.Id); ClassSync.ProductDB.StockReal sr = null; ClassSync.ProductDB.StockReal sr2 = null; if (e.StockReal_ != null) { sr = e.StockReal_.First(l => l.IdEstablishment == ClassGlobalVar.IdEstablishment); sr2 = e.StockReal_.First(l => l.IdEstablishment == ClassGlobalVar.IdEstablishment_GROS); } if (sr == null) { sr = ClassSync.ProductDB.StockReal.addIsNull(p.CustumerId, ClassGlobalVar.IdEstablishment); sr2 = ClassSync.ProductDB.StockReal.addIsNull(p.CustumerId, ClassGlobalVar.IdEstablishment_GROS); } p.price = sr.Price; p.priceGros = sr2.Price; p.qty = sr.QTY; p.cusumerIdRealStock = sr.CustomerId; p.uniteContenance = e.UniteContenance; p.contenance = e.Contenance; p.tare = e.Tare; p.date = e.Date; p.CodeBare = e.CodeBare; p.balance = e.Balance; p.cusumerIdSubGroup = e.SubGrpProduct.Id; ClassGroupProduct.grp_subGrp gs = ClassGroupProduct.getGrpId(p.cusumerIdSubGroup); p.grp = gs.grp; p.sgrp = gs.subGrp; p.ProductsWeb_CustomerId = e.ProductsWeb_CustomerId; return(p); } catch (Exception ex) { new ClassLog("error 2012" + ex.Message + " " + e.Name + " " + e.CodeBare); return(null); } }
public ClassPrintCheck(XDocument b, bool Duplicate) { this.Duplicate = Duplicate; listProduct = new List <groupProduct>(); tva = new List <string>(); foreach (var p in ClassSync.TypesPayDB.t) { XAttribute a = b.Element("check").Attribute(p.NameCourt.TrimEnd().TrimStart()); if (a != null) { string money = a.Value.Replace(".", ","); attr.Add(new Pays(p, decimal.Parse(money))); } } rendu = decimal.Parse(b.Element("check").Attribute("Rendu").Value.Replace(".", ",")); IEnumerable <XElement> xe = b.Element("check").Elements("product"); decimal sum = 0.0m; decimal sumDiscounts = 0.0m; foreach (XElement e in xe) { decimal Discount = decimal.Parse(e.Element("Discount").Value.Replace(".", ",")); decimal sumDiscount = -decimal.Parse(e.Element("sumDiscount").Value.Replace(".", ",")); string codebare = e.Element("CodeBare").Value.TrimEnd().TrimStart().Trim(); decimal qty = decimal.Parse(e.Element("qty").Value.Replace(".", ",")); string name = e.Element("Name").Value; decimal total = decimal.Parse(e.Element("total").Value.Replace(".", ",")) - sumDiscount; decimal price = decimal.Parse(e.Element("price").Value.Replace(".", ",")); string categories = ClassGroupProduct.getName(int.Parse(e.Element("grp").Value)); int tva_ = int.Parse(e.Element("tva").Value); Guid customerId = Guid.Parse(e.Element("CustumerId").Value); groupProduct.product p = new groupProduct.product(customerId, categories, codebare, name, qty, total, price, tva_, Discount, sumDiscount); #region DISCOUNT if (Discount > 0) { string discountcategories = "Remise " + p.procentDiscount + "%"; int discountIndx = listProduct.FindIndex(l => l.categories == discountcategories); if (discountIndx == -1) { groupProduct.product pn = new groupProduct.product(Guid.Empty, discountcategories, barcode, name, qty, total, price, tva_, Discount, sumDiscount); listProduct.Add(new groupProduct(discountcategories, pn)); } else { // groupProduct.product pn = new groupProduct.product(Guid.Empty, discountcategories, "", name, 1, sumDiscount, 0, tva_, Discount, sumDiscount); groupProduct.product pn = new groupProduct.product(Guid.Empty, discountcategories, barcode, name, qty, total, price, tva_, Discount, sumDiscount); int repeat = listProduct[discountIndx].products.FindIndex((l => ((l.name == name)))); if (repeat != -1) { listProduct[discountIndx].products[repeat].total += pn.sumDiscount; listProduct[discountIndx].products[repeat].price = pn.price; listProduct[discountIndx].products[repeat].TvaTotal += pn.TvaTotal; listProduct[discountIndx].products[repeat].HT += pn.HT; listProduct[discountIndx].products[repeat].sumDiscount += pn.sumDiscount; } else { listProduct[discountIndx].products.Add(pn); } } sumDiscounts -= sumDiscount; } #endregion int indx = listProduct.FindIndex(l => l.categories == p.categories); if (indx != -1) { int f = -1; f = listProduct[indx].products.FindIndex(l => ((l.customerId == p.customerId) && l.price == p.price)); if (f == -1) { listProduct[indx].products.Add(p); } else { if (listProduct[indx].products[f].categories != "Remise " + p.procentDiscount + "%") { listProduct[indx].products[f].qty += p.qty; listProduct[indx].products[f].total += p.total; listProduct[indx].products[f].price = p.price; listProduct[indx].products[f].TvaTotal += p.TvaTotal; listProduct[indx].products[f].HT += p.HT; listProduct[indx].products[f].sumDiscount += p.sumDiscount; } } } else { listProduct.Add(new groupProduct(categories, p)); } sum += total; } listProduct = listProduct.OrderBy(l => l.categories).ToList(); List <groupProduct> listProductDiscount = listProduct.FindAll(l => l.categories.IndexOf("Discount") != -1); listProduct.RemoveAll(l => l.categories.IndexOf("Discount") != -1); List <groupProduct> listProductDiscountRemise = listProduct.FindAll(l => l.categories.IndexOf("Remise") != -1); listProduct.RemoveAll(l => l.categories.IndexOf("Remise") != -1); listProduct.AddRange(listProductDiscount); listProduct.AddRange(listProductDiscountRemise); head = File.ReadAllText(pathH); footer = File.ReadAllText(pathF); barcode = b.Element("check").Attribute("barcodeCheck").Value; totals = (sum - sumDiscounts).ToString("0.00"); sumDiscount_ = sumDiscounts.ToString("0.00"); #region DiscountPoints XAttribute a0 = b.Element("check").Attribute("DCBC"); XAttribute a1 = b.Element("check").Attribute("DCBC_BiloPoints"); XAttribute a2 = b.Element("check").Attribute("DCBC_DobavilePoints"); XAttribute a3 = b.Element("check").Attribute("DCBC_OtnayliPoints"); XAttribute a4 = b.Element("check").Attribute("DCBC_OstalosPoints"); XAttribute a5 = b.Element("check").Attribute("DCBC_name"); string BCDC = (a0 != null ? a0.Value : null); if ((BCDC != null) && (BCDC != "")) { c = new infoOfClient { DCBC = a0.Value, DCBC_BiloPoints = a1.Value, DCBC_DobavilePoints = a2.Value, DCBC_OtnayliP = a3.Value, DCBC_OstalosPoints = a4.Value, DCBC_name = a5.Value }; } #endregion ClassDotLiquid.prt(barcode, head, listProduct, totals, sumDiscount_, attr, rendu, footer, c, Duplicate); }
public static void xmlToDbSave(XDocument x) { ClassSync.TES Tes = new ClassSync.TES(); Tes.CustomerId = Guid.NewGuid(); Tes.a_CodeFournisseur = 0; //short.Parse( pro.Nclient); Tes.a_FRTVA = ClassSync.classPro.getFRTVA(pro); Tes.a_Mail = pro.Mail; Tes.a_Name = ClassSync.classPro.getName(pro) ?? ""; Tes.a_Sex = ClassSync.classPro.SexToInt(ClassSync.classPro.getSex(pro)); Tes.a_Surname = ClassSync.classPro.getSurName(pro) ?? ""; Tes.a_NameCompany = pro.NameCompany; Tes.a_OfficeAddress = ClassSync.classPro.getOfficeAddress(pro); Tes.a_OfficeCity = ClassSync.classPro.getOfficeCity(pro); Tes.a_OfficeZipCode = ClassSync.classPro.getOfficeZipCode(pro); Tes.a_SIRET = ClassSync.classPro.getSIRET(pro); Tes.a_Telephone = pro.Telephone; Tes.CustomerId = Guid.NewGuid(); Tes.DateTime = DateTime.Now; Tes.Description = ""; Tes.Id = ClassSync.TES.maxId(0) + 1; Tes.Livraison = false; Tes.Montant = decimal.Parse(x.Element("check").Attribute("sum").Value.Replace('.', ',')); Tes.Nclient = pro.Nclient.ToString(); Tes.Payement = false; Tes.Type = 0; Tes.v_Adresse = ClassGlobalVar.Establishment.Adresse; Tes.v_CodeNAF = "0"; Tes.v_CP = ClassGlobalVar.Establishment.CP; Tes.v_Fax = ClassGlobalVar.Establishment.Phone; Tes.v_FRTVA = ""; Tes.v_Mail = ClassGlobalVar.Establishment.Mail; Tes.v_NameCompany = ClassGlobalVar.Establishment.Name; Tes.v_Phone = ClassGlobalVar.Establishment.Phone; Tes.v_SIRET = ""; Tes.v_Ville = ClassGlobalVar.Establishment.Ville; IEnumerable <XElement> products = x.Element("check").Elements("product"); string cmdSr = " "; List <XElement> p = new List <XElement>(); foreach (var product in products) { var pf = p.Find(l => (l.Element("CustumerId").Value == product.Element("CustumerId").Value)); if (pf == null || (pf.Element("price").Value != product.Element("price").Value)) { p.Add(product); } else { decimal qty = decimal.Parse(pf.Element("qty").Value.Replace('.', ',')); decimal qty_ = decimal.Parse(product.Element("qty").Value.Replace('.', ',')); decimal total = decimal.Parse(pf.Element("total").Value.Replace('.', ',')); decimal total_ = decimal.Parse(product.Element("total").Value.Replace('.', ',')); pf.Element("qty").SetValue(qty + qty_); pf.Element("total").SetValue(total + total_); } } x.Element("check").Elements("product").Remove(); foreach (var product in p) { x.Element("check").Add(product); ClassSync.TESproducts prod = new ClassSync.TESproducts(); prod.Balance = bool.Parse(product.Element("balance").Value); prod.CodeBar = replaceCodeBare(product.Element("CodeBare").Value); prod.ConditionAchat = 1;// decimal.Parse( product.Element("qty").Value); prod.CustomerId = -1; prod.CustomerIdProduct = Guid.Parse(product.Element("CustumerId").Value); prod.Date = DateTime.Now; prod.Description = ClassGlobalVar.Name; prod.Group = ClassGroupProduct.getName(int.Parse(product.Element("grp").Value)); prod.NameProduct = product.Element("Name").Value; prod.PrixHT = Math.Round(decimal.Parse(product.Element("price").Value.Replace('.', ',')), 2); prod.ProductsWeb = Guid.Parse(product.Element("ProductsWeb_CustomerId").Value); prod.QTY = decimal.Parse(product.Element("qty").Value.Replace('.', ',')); prod.SubGroup = ClassGroupProduct.getName(int.Parse(product.Element("grp").Value)); prod.TESCustomerId = Tes.CustomerId; prod.TVA = ClassTVA.getTVA(int.Parse(product.Element("tva").Value)); decimal tva = PrixTTCOnlyTVA(decimal.Parse(product.Element("price").Value.Replace('.', ',')), prod.TVA); prod.PrixHT = prod.PrixHT - tva; prod.TotalHT = prod.QTY * prod.PrixHT; //decimal.Parse(product.Element("total").Value.Replace('.', ',')) - totalOnlyTVA(product); prod.TypeID = 1; Tes.TESproducts.Add(prod); decimal qty = prod.QTY; Guid cusumerIdRealStock = Guid.Parse(product.Element("cusumerIdRealStock").Value.Replace('.', ',')); cmdSr += ClassSync.ProductDB.StockReal.query_add_qty(-qty, cusumerIdRealStock); } foreach (ClassSync.TypesPayDB type in ClassSync.TypesPayDB.t) { ClassSync.TESreglement reglement = new ClassSync.TESreglement(); var r = reglement.TypePayItems.FirstOrDefault(l => l.Text == type.NameCourt); var elm = x.Element("check").Attribute(type.NameCourt); if (elm != null && r != null) { reglement.Caisse = ClassGlobalVar.nameTicket; reglement.CustomerId = Guid.NewGuid(); reglement.DateTime = DateTime.Now; if (r.Value == "En espèces") { var rendux = x.Element("check").Attribute("Rendu"); if (rendux != null) { decimal rendu = decimal.Parse(rendux.Value.Replace('.', ',')); reglement.Montant = decimal.Parse(elm.Value.Replace('.', ',')) + rendu; } else { reglement.Montant = decimal.Parse(elm.Value.Replace('.', ',')); } } else { reglement.Montant = decimal.Parse(elm.Value.Replace('.', ',')); } reglement.TESCustomerId = Tes.CustomerId; reglement.TypePay = r.Value; Tes.TESreglement.Add(reglement); } Tes.Payement = (Tes.TESreglement.Sum(l => l.Montant) >= Tes.Montant); } int c_tes = 0; int c_tes_ = 0; int c_sr = 0; if (Tes.TESreglement.Count > 0) { ClassSync.TES Tes_ = new ClassSync.TES(); Tes_.CustomerId = Guid.NewGuid(); Tes_.a_CodeFournisseur = (short)(pro.Nclient); Tes_.a_FRTVA = ClassSync.classPro.getFRTVA(pro); Tes_.a_Mail = pro.Mail; Tes_.a_Name = ClassSync.classPro.getName(pro) ?? ""; Tes_.a_Sex = ClassSync.classPro.SexToInt(ClassSync.classPro.getSex(pro)); Tes_.a_Surname = ClassSync.classPro.getSurName(pro) ?? ""; Tes_.a_NameCompany = pro.NameCompany; Tes_.a_OfficeAddress = ClassSync.classPro.getOfficeAddress(pro); Tes_.a_OfficeCity = ClassSync.classPro.getOfficeCity(pro); Tes_.a_OfficeZipCode = ClassSync.classPro.getOfficeZipCode(pro); Tes_.a_SIRET = ClassSync.classPro.getSIRET(pro); Tes_.a_Telephone = pro.Telephone; Tes_.CustomerId = Guid.NewGuid(); Tes_.DateTime = DateTime.Now; Tes_.Description = "{" + Tes.CustomerId + "}{" + Tes.Id + "}{" + Tes.Type + "}"; Tes_.Id = ClassSync.TES.maxId(1) + 1; Tes_.Livraison = Tes.Livraison; Tes_.Montant = decimal.Parse(x.Element("check").Attribute("sum").Value.Replace('.', ',')); Tes_.Nclient = pro.Nclient.ToString(); Tes_.Payement = Tes.Payement; Tes_.Type = 1; Tes_.v_Adresse = Tes.v_Adresse; Tes_.v_CodeNAF = Tes.v_CodeNAF; Tes_.v_CP = Tes.v_CP; Tes_.v_Fax = Tes.v_Fax; Tes_.v_FRTVA = Tes.v_FRTVA; Tes_.v_Mail = Tes.v_Mail; Tes_.v_NameCompany = Tes.v_NameCompany; Tes_.v_Phone = Tes.v_Phone; Tes_.v_SIRET = Tes.v_SIRET; Tes_.v_Ville = Tes.v_Ville; Tes.Description = "{" + Tes_.CustomerId + "}{" + Tes_.Id + "}{" + Tes_.Type + "}"; foreach (var t in Tes.TESreglement) { if (t.Montant > 0) { t.TESCustomerId = Tes_.CustomerId; Tes_.TESreglement.Add(t); } } Tes.TESreglement.Clear(); // foreach (var t in Tes.TESproducts) // Tes_.TESproducts.Add(t); c_tes_ = ClassSync.TES.ins(Tes_); } c_tes = ClassSync.TES.ins(Tes); c_sr = ClassSync.ProductDB.StockReal.response(cmdSr); nfact = Tes.Id ?? -1; fileMove(); }