private static void serialiseConto(TempoDataBaseContext context) { var Allconto = context.GetAllConto(1, 2000, 20); ContoAll contoAll = new ContoAll(); contoAll.Conto = Allconto.First(); contoAll.ItemsDebit = new List <SaldoItem>(DbHelper.LoadCreditAnaliticAtributes(context.LoadContoDetails(contoAll.Conto.Id, 1), 1)); contoAll.ItemsCredit = new List <SaldoItem>(DbHelper.LoadCreditAnaliticAtributes(context.LoadContoDetails(contoAll.Conto.Id, 2), 2)); SerializeUtil.SerializeToXML <ContoAll>("test.xml", contoAll); }
private static void InsertConto(TempoDataBaseContext context, string path) { ContoAll allconto = new ContoAll(); allconto.Conto = new Conto(); allconto.Conto.UserId = Entrence.UserId; allconto.Conto.FirmId = FirmaId; var lines = File.ReadAllLines(path, Encoding.GetEncoding("Windows-1251")); foreach (string line in lines) { var command = line.Split('|'); if (command.Length > 1) { var oper = command[0]; switch (oper) { case "A": DateTime date = DateTime.Now; if (DateTime.TryParse(command[1], out date)) { allconto.Conto.Data = date; } else { var c = command[1].Split('.'); if (c.Length > 2) { date = new DateTime(int.Parse(c[2]), int.Parse(c[1]), int.Parse(c[0])); allconto.Conto.Data = date; } else { allconto.Conto.Data = DateTime.Now; } } AllAccounts = new ObservableCollection <AccountsModel>(context.GetAllAccounts(FirmaId, allconto.Conto.Data.Year)); break; case "Z": DateTime date1 = DateTime.Now; if (DateTime.TryParse(command[1], out date1)) { allconto.Conto.DataInvoise = date1; } else { var c = command[1].Split('.'); if (c.Length > 2) { date = new DateTime(int.Parse(c[2]), int.Parse(c[1]), int.Parse(c[0])); allconto.Conto.DataInvoise = date1; } else { allconto.Conto.DataInvoise = DateTime.Now; } } break; case "C": { allconto.Conto.Oborot = mydecimal.Parse(command[1]); break; } case "N": allconto.Conto.DocNum = command[1]; break; case "P": allconto.Conto.Folder = command[1]; break; case "O": if (command.Length > 50) { command[1] = command[1].Substring(0, 50); } allconto.Conto.Reason = command[1]; break; case "T": if (command.Length > 50) { command[1] = command[1].Substring(0, 50); } allconto.Conto.Note = command[1]; break; case "K": allconto.Conto.KD = command[1]; break; case "H": allconto.KindDeal = command[1]; break; case "W": allconto.KindDds = command[1]; break; case "Q": allconto.CountActions = command[1]; break; case "U": int t = 0; if (int.TryParse(command[1], out t)) { allconto.Conto.UserId = t; } break; case "S": //дебит LoadAnaliticDetailsD(command[1], context, allconto); break; case "D": //кредит LoadAnaliticDetailsK(command[1], context, allconto); break; case "I": //кредит allconto.NameClient = command[1]; break; case "9": allconto.Conto.NumberObject = int.Parse(command[1]); break; case "1": SetAnaliticVal(command[1], context, allconto, 0); break; case "3": SetAnaliticVal(command[1], context, allconto, 1); break; case "5": SetAnaliticVal(command[1], context, allconto, 2); break; case "7": SetAnaliticVal(command[1], context, allconto, 3); break; case "2": SetAnaliticVal(command[1], context, allconto, 4); break; case "4": SetAnaliticVal(command[1], context, allconto, 5); break; case "6": SetAnaliticVal(command[1], context, allconto, 6); break; case "8": SetAnaliticVal(command[1], context, allconto, 7); break; } } } allconto.Conto.CDetails = ""; allconto.Conto.DDetails = ""; if (allconto.ItemsCredit != null) { foreach (SaldoItem currentsaldos in allconto.ItemsCredit) { if (currentsaldos.Fieldkey == 30) { allconto.Conto.OborotValutaK = currentsaldos.ValueVal; allconto.Conto.CDetails += string.Format("{0} - {1} {2}\n", currentsaldos.Name, currentsaldos.ValueVal, currentsaldos.Lookupval); currentsaldos.Value = currentsaldos.ValueVal.ToString(Vf.LevFormatUI); } else { if (currentsaldos.Fieldkey == 31) { allconto.Conto.OborotKolK = currentsaldos.ValueKol; allconto.Conto.CDetails += string.Format("{0} - {1} {2}\n", currentsaldos.Name, currentsaldos.ValueKol, currentsaldos.Lookupval); //currentsaldos.Value = currentsaldos.ValueVal.ToString(Vf.LevFormatUI); } else { allconto.Conto.CDetails += string.Format("{0} - {1} {2}\n", currentsaldos.Name, currentsaldos.Value, currentsaldos.Lookupval); } } } } if (allconto.ItemsDebit != null) { foreach (SaldoItem currentsaldos in allconto.ItemsDebit) { if (currentsaldos.Fieldkey == 30) { allconto.Conto.OborotValutaD = currentsaldos.ValueVal; allconto.Conto.DDetails += string.Format("{0} - {1} {2}\n", currentsaldos.Name, currentsaldos.ValueVal, currentsaldos.Lookupval); currentsaldos.Value = currentsaldos.ValueVal.ToString(Vf.LevFormatUI); } else { if (currentsaldos.Fieldkey == 31) { allconto.Conto.OborotKolD = currentsaldos.ValueKol; allconto.Conto.DDetails += string.Format("{0} - {1} {2}\n", currentsaldos.Name, currentsaldos.ValueKol, currentsaldos.Lookupval); } else { allconto.Conto.DDetails += string.Format("{0} - {1} {2}\n", currentsaldos.Name, currentsaldos.Value, currentsaldos.Lookupval); } } } } if (allconto.KindDeal == "2") { allconto.Conto.IsDdsSales = 1; allconto.Conto.VopSales = allconto.KindDds; allconto.Conto.IsSales = 1; } else { if (allconto.KindDeal == "1") { allconto.Conto.IsDdsPurchases = 1; allconto.Conto.IsPurchases = 1; allconto.Conto.VopPurchases = allconto.KindDds; } else { if (allconto.KindDeal == "3") { allconto.Conto.IsDdsSales = 1; allconto.Conto.IsSales = 1; allconto.Conto.IsPurchases = 1; allconto.Conto.IsDdsPurchases = 1; } else { allconto.Conto.IsDdsSales = 0; allconto.Conto.IsSales = 0; allconto.Conto.IsPurchases = 0; allconto.Conto.IsDdsPurchases = 0; } } } SaveMainConto(context, allconto); if (allconto.KindDeal == "1" || allconto.KindDeal == "2" && allconto.CountActions != "3") { SaveDDS(context, allconto); } if (allconto.CountActions == "3") { var dds = SaveDDS(context, allconto); allconto.Conto.IsDdsSales = 0; allconto.Conto.IsSales = 0; allconto.Conto.VopSales = ""; allconto.Conto.IsDdsPurchases = 0; allconto.Conto.IsPurchases = 0; allconto.Conto.VopPurchases = ""; allconto.Conto.Oborot = dds; if (allconto.KindDeal == "2") { LoadAnaliticDetailsK(Entrence.DdsSmetkaK, context, allconto); SaveMainConto(context, allconto); } else { if (allconto.KindDeal == "1") { LoadAnaliticDetailsD(Entrence.DdsSmetkaD, context, allconto); SaveMainConto(context, allconto); } else { } } } }
public static void LoadAnaliticDetailsK(string accname, TempoDataBaseContext context, ContoAll conto) { if (!accname.Contains("/")) { int num; if (int.TryParse(accname, out num)) { var model = AllAccounts.FirstOrDefault(e => e.Num == num && e.SubNum == 0); if (model != null) { conto.Conto.CreditAccount = model.Id; } var list = context.LoadAllAnaliticfields(model.Id); conto.ItemsCredit = new List <SaldoItem>(LoadCreditAnaliticAtributes(list.ToList(), 1)); foreach (SaldoItem saldoItem in conto.ItemsCredit) { if (saldoItem.Type == SaldoItemTypes.Date) { saldoItem.Value = conto.Conto.Data.ToShortDateString(); } } if (conto.ItemsCredit.Count == 0) { conto.ItemsCredit = null; } } } else { int num, subnum; var ac = accname.Split('/'); if (int.TryParse(ac[0], out num) && int.TryParse(ac[1], out subnum)) { var model = AllAccounts.FirstOrDefault(e => e.Num == num && e.SubNum == subnum); if (model != null) { conto.Conto.CreditAccount = model.Id; var list = context.LoadAllAnaliticfields(model.Id); conto.ItemsCredit = new List <SaldoItem>(LoadCreditAnaliticAtributes(list.ToList(), 1)); foreach (SaldoItem saldoItem in conto.ItemsCredit) { if (saldoItem.Type == SaldoItemTypes.Date) { saldoItem.Value = conto.Conto.Data.ToShortDateString(); } } if (conto.ItemsCredit.Count == 0) { conto.ItemsCredit = null; } } } } }
private static void SetAnaliticVal(string s, TempoDataBaseContext context, ContoAll allconto, int i) { SaldoItem item = null; switch (i) { case 0: if (allconto.ItemsDebit != null && allconto.ItemsDebit.Count > 0) { item = allconto.ItemsDebit[0]; } Bulstad = s; if (item == null) { var item1 = new SaldoItem { SysLookup = false, Relookup = 17 }; var mainrez = item1.GetDictionary( string.Format("AND \"{0}\"='{1}'", "BULSTAT", s), string.Format(" order by \"{0}\"", "BULSTAT")); if (mainrez.Count <= 1) { var lookupModel = context.GetLookup(17); CodeClient = context.SelectMax(lookupModel.LookUpMetaData.Tablename, lookupModel.Fields[1].NameEng); var lookupval = allconto.NameClient; lookupModel.Fields.Add(new TableField { DbField = "integer", GROUP = 4, Id = 4, Length = 4, IsRequared = false, NameEng = "FIRMAID", Name = "Фирма Номер" }); context.SaveRow(new List <string> { CodeClient, CodeClient, lookupval, lookupval, s, s }, lookupModel, FirmaId); } else { CodeClient = mainrez[1][0]; allconto.NameClient = mainrez[1][1]; int h = 0; if (int.TryParse(mainrez[1][0], out h)) { LiD = item1.GetLookUpId(0); } if (mainrez[1].Count > 4) { Bulstad = mainrez[1][3]; Vat = mainrez[1][4]; } } } break; case 1: if (allconto.ItemsDebit != null && allconto.ItemsDebit.Count > 1) { item = allconto.ItemsDebit[1]; } Factura = s; break; case 2: if (allconto.ItemsDebit != null && allconto.ItemsDebit.Count > 2) { item = allconto.ItemsDebit[2]; } DateTime date1; if (DateTime.TryParse(s, out date1)) { DataFactura = date1; } else { var c = s.Split('.'); if (c.Length > 2) { DataFactura = new DateTime(int.Parse(c[2]), int.Parse(c[1]), int.Parse(c[0])); } else { DataFactura = DateTime.Now; } } break; case 3: if (allconto.ItemsDebit != null && allconto.ItemsDebit.Count > 3) { item = allconto.ItemsDebit[3]; } break; case 4: if (allconto.ItemsCredit != null && allconto.ItemsCredit.Count > 0) { item = allconto.ItemsCredit[0]; } Bulstad = s; if (item == null) { var item1 = new SaldoItem { SysLookup = false, Relookup = 17 }; var mainrez = item1.GetDictionary( string.Format("AND \"{0}\"='{1}'", "BULSTAT", s), string.Format(" order by \"{0}\"", "BULSTAT")); if (mainrez.Count <= 1) { var lookupModel = context.GetLookup(17); CodeClient = context.SelectMax(lookupModel.LookUpMetaData.Tablename, lookupModel.Fields[1].NameEng); var lookupval = allconto.NameClient; lookupModel.Fields.Add(new TableField { DbField = "integer", GROUP = 4, Id = 4, Length = 4, IsRequared = false, NameEng = "FIRMAID", Name = "Фирма Номер" }); context.SaveRow(new List <string> { CodeClient, CodeClient, lookupval, lookupval, s, s }, lookupModel, FirmaId); } else { CodeClient = mainrez[1][1]; allconto.NameClient = mainrez[1][2]; int h = 0; if (int.TryParse(mainrez[1][0], out h)) { LiD = item1.GetLookUpId(0); } if (mainrez[1].Count > 4) { Bulstad = mainrez[1][3]; Vat = mainrez[1][4]; } } } break; case 5: if (allconto.ItemsCredit != null && allconto.ItemsCredit.Count > 1) { item = allconto.ItemsCredit[1]; } Factura = s; break; case 6: if (allconto.ItemsCredit != null && allconto.ItemsCredit.Count > 2) { item = allconto.ItemsCredit[2]; } DateTime date2; if (DateTime.TryParse(s, out date2)) { DataFactura = date2; } else { var c = s.Split('.'); if (c.Length > 2) { DataFactura = new DateTime(int.Parse(c[2]), int.Parse(c[1]), int.Parse(c[0])); } else { DataFactura = DateTime.Now; } } break; case 7: if (allconto.ItemsCredit != null && allconto.ItemsCredit.Count > 3) { item = allconto.ItemsCredit[3]; } break; } if (item != null) { if (!item.IsLookUp) { item.Value = s; } else { if (item.Name == "Контрагент") { var mainrez = item.GetDictionary( string.Format("AND \"{0}\"='{1}'", "BULSTAT", s), string.Format(" order by \"{0}\"", "BULSTAT")); if (mainrez != null && mainrez.Count > 1) { item.Value = mainrez[1][0]; item.Lookupval = mainrez[1][1]; int h = 0; if (int.TryParse(mainrez[1][0], out h)) { item.LiD = item.GetLookUpId(0); } if (mainrez[1].Count > 4) { item.Bulstad = mainrez[1][3]; item.Vat = mainrez[1][4]; } } else { var lookupModel = context.GetLookup(17); item.Value = context.SelectMax(lookupModel.LookUpMetaData.Tablename, lookupModel.Fields[1].NameEng); item.Lookupval = allconto.NameClient; item.Bulstad = s; item.Vat = s; lookupModel.Fields.Add(new TableField { DbField = "integer", GROUP = 4, Id = 4, Length = 4, IsRequared = false, NameEng = "FIRMAID", Name = "Фирма Номер" }); context.SaveRow(new List <string> { item.Value, item.Value, item.Lookupval, item.Lookupval, s, s }, lookupModel, FirmaId); } } } } }
private static void SaveMainConto(TempoDataBaseContext context, ContoAll allconto) { int ii = 0; List <SaldoAnaliticModel> debit = new List <SaldoAnaliticModel>(); List <SaldoAnaliticModel> credit = new List <SaldoAnaliticModel>(); if (allconto.ItemsCredit != null) { foreach (SaldoItem currentsaldos in allconto.ItemsCredit) { SaldoAnaliticModel sa = new SaldoAnaliticModel(); sa.ACCFIELDKEY = currentsaldos.Fieldkey; sa.ACCID = allconto.Conto.CreditAccount; sa.DATA = DateTime.Now; //if (currentsaldos.SelectedLookupItem != null && !string.IsNullOrWhiteSpace(currentsaldos.SelectedLookupItem.Key)) //{ // if (currentsaldos.SelectedLookupItem.Key != null) // { // int rez; // sa.LOOKUPFIELDKEY = int.TryParse(currentsaldos.SelectedLookupItem.Key,out rez)?rez:0; // sa.LOOKUPVAL = currentsaldos.SelectedLookupItem.Value; // } //} sa.LOOKUPFIELDKEY = currentsaldos.LiD; sa.LOOKUPVAL = currentsaldos.Lookupval; sa.TYPEACCKEY = 0; sa.VALUEDATE = currentsaldos.ValueDate; sa.VAL = currentsaldos.Value; sa.VALUEMONEY = currentsaldos.Valuedecimal; sa.VALUENUM = currentsaldos.ValueInt; sa.VALUED = currentsaldos.Valuedecimald; sa.KURS = currentsaldos.IsKol ? currentsaldos.OnePrice : currentsaldos.ValueKurs; sa.VALVAL = currentsaldos.IsKol ? currentsaldos.ValueKol : currentsaldos.ValueVal; sa.KURSM = currentsaldos.MainKurs; sa.KURSD = currentsaldos.KursDif; sa.KURSD = currentsaldos.KursDif; sa.TYPE = 2; sa.LOOKUPID = currentsaldos.Relookup; sa.CONTOID = allconto.Conto.Id; sa.SORTORDER = ii; debit.Add(sa); ii++; } } ii = 0; if (allconto.ItemsDebit != null) { foreach (SaldoItem currentsaldos in allconto.ItemsDebit) { SaldoAnaliticModel sa = new SaldoAnaliticModel(); sa.ACCFIELDKEY = currentsaldos.Fieldkey; sa.ACCID = allconto.Conto.DebitAccount; sa.DATA = DateTime.Now; sa.LOOKUPFIELDKEY = currentsaldos.LiD; sa.TYPEACCKEY = 0; sa.VALUEDATE = currentsaldos.ValueDate; sa.VAL = currentsaldos.Value; sa.VALUEMONEY = currentsaldos.Valuedecimal; sa.VALUENUM = currentsaldos.ValueInt; sa.VALUED = currentsaldos.Valuedecimald; sa.KURS = currentsaldos.IsKol ? currentsaldos.OnePrice : currentsaldos.ValueKurs; sa.VALVAL = currentsaldos.IsKol ? currentsaldos.ValueKol : currentsaldos.ValueVal; sa.KURSM = currentsaldos.MainKurs; sa.KURSD = currentsaldos.KursDif; sa.KURSD = currentsaldos.KursDif; sa.TYPE = 1; sa.LOOKUPID = currentsaldos.Relookup; sa.LOOKUPVAL = currentsaldos.Lookupval; sa.CONTOID = allconto.Conto.Id; sa.SORTORDER = ii; credit.Add(sa); ii++; } } context.SaveConto(allconto.Conto, debit, credit); }
private static decimal SaveDDS(TempoDataBaseContext context, ContoAll allconto) { var itemsDdsDnevPurchases = new List <DdsItemModel>(context.GetAllDnevItems(1)); var itemsDdsDnevSales = new List <DdsItemModel>(context.GetAllDnevItems(0)); var currItemDdsDnevPurchases = itemsDdsDnevPurchases.FirstOrDefault(e => e.Code == allconto.KindDds); var currItemDdsDnevSales = itemsDdsDnevSales.FirstOrDefault(e => e.Code == allconto.KindDds); int codeDnev = 2; if (allconto.KindDeal == "1") { codeDnev = 1; } DdsDnevnikModel ddsDnevnikModel = context.LoadDenevnicItem(allconto.Conto.Id, codeDnev); //ddsDnevnikModel.DocId = allconto.Conto.DocNum; ddsDnevnikModel.Date = allconto.Conto.Data; ddsDnevnikModel.DataF = allconto.Conto.Data; ddsDnevnikModel.KindActivity = codeDnev; ddsDnevnikModel.KindDoc = 1; ddsDnevnikModel.Title = codeDnev == 1 ? "Дневник покупки" : "Дневник продажби"; ddsDnevnikModel.CodeDoc = allconto.Conto.KD; ddsDnevnikModel.Stoke = allconto.Conto.Reason; ddsDnevnikModel.DdsIncluded = allconto.IsDdsInclude ? "ВКЛЮЧЕН ДДС" : "НЕВКЛЮЧЕН ДДС"; if (codeDnev == 2) { if (allconto.ItemsCredit != null) { foreach (SaldoItem saldoItem in allconto.ItemsCredit) { if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент")) { ddsDnevnikModel.LookupID = saldoItem.Relookup; ddsDnevnikModel.LookupElementID = saldoItem.LiD; ddsDnevnikModel.ClNum = saldoItem.Value; } if (saldoItem.Name.Contains("Дата на фактура")) { ddsDnevnikModel.DataF = saldoItem.ValueDate; } if (saldoItem.Name.Contains("Номер фактура")) { ddsDnevnikModel.DocId = saldoItem.Value; } } } if (allconto.ItemsDebit != null) { foreach (SaldoItem saldoItem in allconto.ItemsDebit) { if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент")) { ddsDnevnikModel.LookupID = saldoItem.Relookup; ddsDnevnikModel.LookupElementID = saldoItem.LiD; ddsDnevnikModel.ClNum = saldoItem.Value; } if (saldoItem.Name.Contains("Дата на фактура")) { ddsDnevnikModel.DataF = saldoItem.ValueDate; } if (saldoItem.Name.Contains("Номер фактура")) { ddsDnevnikModel.DocId = saldoItem.Value; } } } } else { if (allconto.ItemsDebit != null) { foreach (SaldoItem saldoItem in allconto.ItemsDebit) { if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент")) { ddsDnevnikModel.LookupID = saldoItem.Relookup; ddsDnevnikModel.LookupElementID = saldoItem.LiD; ddsDnevnikModel.ClNum = saldoItem.Value; } if (saldoItem.Name.Contains("Дата на фактура")) { ddsDnevnikModel.DataF = saldoItem.ValueDate; } if (saldoItem.Name.Contains("Номер фактура")) { ddsDnevnikModel.DocId = saldoItem.Value; } } } if (allconto.ItemsDebit != null) { foreach (SaldoItem saldoItem in allconto.ItemsCredit) { if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент")) { ddsDnevnikModel.LookupID = saldoItem.Relookup; ddsDnevnikModel.LookupElementID = saldoItem.LiD; ddsDnevnikModel.ClNum = saldoItem.Value; } if (saldoItem.Name.Contains("Дата на фактура")) { ddsDnevnikModel.DataF = saldoItem.ValueDate; } if (saldoItem.Name.Contains("Номер фактура")) { ddsDnevnikModel.DocId = saldoItem.Value; } } } } if (allconto.ItemsCredit == null && allconto.ItemsDebit == null) { ddsDnevnikModel.DataF = DataFactura; ddsDnevnikModel.Bulstat = Bulstad; ddsDnevnikModel.Nzdds = Vat ?? Bulstad; ddsDnevnikModel.DocId = Factura; ddsDnevnikModel.LookupID = 17; ddsDnevnikModel.ClNum = CodeClient; } decimal ddspercent = 0; ddspercent = codeDnev == 1 ? currItemDdsDnevPurchases != null ? currItemDdsDnevPurchases.DdsPercent : 0 : currItemDdsDnevSales != null ? currItemDdsDnevSales.DdsPercent : 0; string name = codeDnev == 1 ? currItemDdsDnevPurchases != null ? currItemDdsDnevPurchases.Name : "" : currItemDdsDnevSales != null ? currItemDdsDnevSales.Name : ""; var vm = new DdsViewModel(ddsDnevnikModel, new DdsDnevnicItem { DdsPercent = ddspercent, DdsSuma = allconto.Conto.Oborot, Name = name, In = true }); vm.SaveCommand.Execute(null); return(Decimal.Round(allconto.Conto.Oborot * ddspercent / 100, 2)); }