public crmContractDeal RegisterDeal() { crmContractDeal rd; switch (KindOfDeal) { // case KindOfDeal.DEAL_LONG_SERVICE: // rd = new crmDealLongService(this.Session); // break; case KindOfDeal.DEAL_WITH_STAGE: rd = new crmDealWithStage(this.Session); break; case KindOfDeal.DEAL_WITHOUT_STAGE: rd = new crmDealWithoutStage(this.Session); break; default: throw new ArgumentException("Unknown Kind Of Deal", "KindOfDeal"); } //rd.DateRegistration = this.DateRegistration; rd.CuratorDepartment = this.CuratorDepartment; rd.Category = this.Category; rd.Current.DateBegin = this.DateBegin; rd.Current.DateEnd = this.DateEnd; rd.Current.DateFinish = this.DateFinish; rd.Current.DescriptionShort = this.DescriptionShort; rd.Current.Price = this.Price; rd.Current.Valuta = this.Valuta; if (this.OurRole == PartyRole.CUSTOMER) { rd.Customer = this.OurParty.Party; rd.Supplier = this.PartnerParty.Party; } else { rd.Supplier = this.OurParty.Party; rd.Customer = this.PartnerParty.Party; } return(rd); }
// static void Main(string[] args) { Session bses = GetSession(); int i = 1; if (args[0] == "city") { using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) { XPQuery <csAddress> aq = new XPQuery <csAddress>(ses); var q = from address in aq where (address.City == null || address.City == "" || address.City == " ") && !(address.AddressString == null || address.AddressString == "" || address.AddressString == " ") select address; foreach (csAddress address in q) { System.Console.WriteLine(address.AddressString + " : " + address.AddressHandmake + " : " + address.City); address.City = "Не задан"; } System.Console.WriteLine(q.Count()); ses.CommitChanges(); } } if (args[0] == "party") { Excel.Application xlApp = null; Excel.Workbook xlWorkBook = null; Excel.Worksheet xlWorkSheet = null; xlApp = new Excel.ApplicationClass(); // Открытие документа (книги) excel xlWorkBook = xlApp.Workbooks.Open("e:\\party2.xls"); // Выбирается Лист (если существует) xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); // //try { while (true) { using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) { i++; ExcelParty ep = new ExcelParty(); // Excel.Range range = xlWorkSheet.get_Range("A" + i, "P" + i); // Excel.Range range2 = xlWorkSheet.get_Range("A1"); if (xlWorkSheet.get_Range("A" + i).Value2 == null) { break; } ep.code = xlWorkSheet.get_Range("A" + i).Value2.ToString(); ep.type = xlWorkSheet.get_Range("B" + i).Value2.ToString(); if (xlWorkSheet.get_Range("C" + i).Value2 != null) { ep.close = xlWorkSheet.get_Range("C" + i).Value2.ToString(); } else { ep.close = String.Empty; } if (xlWorkSheet.get_Range("E" + i).Value2 != null) { ep.country = UpFirstCase(xlWorkSheet.get_Range("E" + i).Value2.ToString()); } else { ep.country = String.Empty; } if (xlWorkSheet.get_Range("F" + i).Value2 != null) { ep.city = UpFirstCase(xlWorkSheet.get_Range("F" + i).Value2.ToString()); } else { ep.city = "-"; } if (xlWorkSheet.get_Range("G" + i).Value2 != null) { ep.legal = xlWorkSheet.get_Range("G" + i).Value2.ToString(); } else { ep.legal = String.Empty; } if (xlWorkSheet.get_Range("H" + i).Value2 != null) { ep.lpt = xlWorkSheet.get_Range("H" + i).Value2.ToString(); } else { ep.lpt = "-"; } ep.inn = xlWorkSheet.get_Range("I" + i).Value2.ToString(); if (xlWorkSheet.get_Range("J" + i).Value2 != null) { ep.kpp = xlWorkSheet.get_Range("J" + i).Value2.ToString(); } else { ep.kpp = String.Empty; } ep.name = xlWorkSheet.get_Range("K" + i).Value2.ToString(); ep.addr = xlWorkSheet.get_Range("L" + i).Value2.ToString(); // party.NameFull = party.Name; // party.AddressFact.AddressHandmake = xlWorkSheet.get_Range("L" + i, "L" + i).Value2.ToString(); // party.INN = xlWorkSheet.get_Range("I" + i, "I" + i).Value2.ToString(); // party.KPP = xlWorkSheet.get_Range("J" + i, "J" + i).Value2.ToString(); switch (ep.type) { case "ЛЮ": crmCLegalPerson lp = NewLegalPerson(ses, ep); //lp.Save(); break; case "ЛФ": crmCPhysicalParty php = new crmCPhysicalParty(ses); php.Code = ep.code; php.NameHandmake = ep.name; php.INN = ep.inn; php.AddressLegal.Country = GetCountry(ses, ep.country); php.AddressLegal.City = ep.city; php.AddressLegal.AddressHandmake = ep.addr; php.AddressFact.Country = php.AddressLegal.Country; php.AddressFact.City = ep.city; php.AddressFact.AddressHandmake = ep.addr; if (!String.IsNullOrEmpty(ep.close.Trim())) { php.IsClosed = true; } //php.Save(); break; case "ИП": crmCBusinessman bp = new crmCBusinessman(ses); bp.Code = ep.code; bp.NameHandmake = ep.name; bp.INN = ep.inn; bp.PersonType = GetPersonType(ses, ep.lpt); bp.AddressLegal.Country = GetCountry(ses, ep.country); bp.AddressLegal.City = ep.city; bp.AddressLegal.AddressHandmake = ep.addr; bp.AddressFact.Country = bp.AddressLegal.Country; bp.AddressFact.City = ep.city; bp.AddressFact.AddressHandmake = ep.addr; if (!String.IsNullOrEmpty(ep.close.Trim())) { bp.IsClosed = true; } //bp.Save(); break; case "ФИЛИАЛ": crmCLegalPersonUnit lpu = UpdateLegalPersonUnit(ses, ep); //lpu.Save(); break; case "ПРОЧИЕ": crmCParty party2 = new crmCParty(ses); party2.Code = ep.code; party2.Name = ep.name; party2.INN = ep.inn; party2.AddressFact.Country = GetCountry(ses, ep.country); party2.AddressFact.City = ep.city; party2.AddressFact.AddressHandmake = ep.addr; if (!String.IsNullOrEmpty(ep.close.Trim())) { party2.IsClosed = true; } //party2.Save(); break; case "ДОМ": crmCParty party = new crmCParty(ses); party.Code = ep.code; party.Name = ep.name; party.INN = ep.inn; party.AddressFact.Country = GetCountry(ses, ep.country); party.AddressFact.City = ep.city; party.AddressFact.AddressHandmake = ep.addr; if (!String.IsNullOrEmpty(ep.close.Trim())) { party.IsClosed = true; } //party.Save(); break; default: throw new NotSupportedException(); } //MessageBox.Show(xlWorkSheet.get_Range("B1", "B1").Value2.ToString()); System.Console.WriteLine(ep.type + ' ' + ep.code + ' ' + ep.name + ' ' + ep.addr); ses.CommitChanges(); } } //} //catch (Exception e) { // if (xlWorkSheet != null) releaseObject(xlWorkSheet); // if (xlWorkBook != null) releaseObject(xlWorkBook); // if (xlApp != null) releaseObject(xlApp); // xlWorkSheet = null; // xlWorkBook = null; // xlApp = null; // GC.Collect(); // System.Console.WriteLine(e); // throw new Exception("Error clear", e); // } // Закрытие книги xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); } if (args[0] == "dogovor") { Excel.Application xlApp = null; Excel.Workbook xlWorkBook = null; Excel.Worksheet xlWorkSheet = null; xlApp = new Excel.ApplicationClass(); // Открытие документа (книги) excel xlWorkBook = xlApp.Workbooks.Open("e:\\Договора.xlsx"); // Выбирается Лист (если существует) xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); // try { while (true) { using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) { i++; ExcelDogovor dog = new ExcelDogovor(); // Excel.Range range = xlWorkSheet.get_Range("A" + i, "P" + i); // Excel.Range range2 = xlWorkSheet.get_Range("A1"); if (xlWorkSheet.get_Range("A" + i).Value2 == null) { break; } dog.staff_code = xlWorkSheet.get_Range("A" + i).Value2.ToString(); dog.dep_code = xlWorkSheet.get_Range("B" + i).Value2.ToString(); dog.type = xlWorkSheet.get_Range("C" + i).Value2.ToString(); dog.dog_id = xlWorkSheet.get_Range("F" + i).Value2.ToString(); dog.dog_num = xlWorkSheet.get_Range("G" + i).Value2.ToString(); String str_date = xlWorkSheet.get_Range("H" + i).Value2.ToString(); dog.dog_date = DateTime.Parse(str_date.Substring(0, 4) + "." + str_date.Substring(4, 2) + "." + str_date.Substring(6, 2)); if (xlWorkSheet.get_Range("I" + i).Value2 != null) { dog.dop_id = xlWorkSheet.get_Range("I" + i).Value2.ToString(); dog.dop_num = xlWorkSheet.get_Range("J" + i).Value2.ToString(); str_date = xlWorkSheet.get_Range("K" + i).Value2.ToString(); dog.dop_date = DateTime.Parse(str_date.Substring(0, 4) + "." + str_date.Substring(4, 2) + "." + str_date.Substring(6, 2)); //dog.dop_date = (DateTime)xlWorkSheet.get_Range("K" + i).Value2; } dog.customer_code = xlWorkSheet.get_Range("L" + i).Value2.ToString(); dog.supplier_code = xlWorkSheet.get_Range("P" + i).Value2.ToString(); crmCParty cust = GetParty(ses, dog.customer_code); if (cust == null) { new KeyNotFoundException(dog.customer_code); } crmCParty supl = GetParty(ses, dog.supplier_code); if (supl == null) { new KeyNotFoundException(dog.supplier_code); } dog.dep = GetDepartment(ses, dog.dep_code); if (dog.dep == null) { new KeyNotFoundException(dog.dep_code); } dog.reg_dep = GetDepartment(ses, "00-056"); if (dog.reg_dep == null) { new KeyNotFoundException("00-056"); } dog.reg_staff = GetStaff(ses, dog.staff_code); if (dog.reg_staff == null) { new KeyNotFoundException(dog.staff_code); } crmContract contract = GetContract(ses, dog); crmContractDeal deal = new crmDealWithStage(ses); deal.State = DealStates.DEAL_FORMATION; deal.CuratorDepartment = dog.dep; deal.UserRegistrator = dog.reg_staff; deal.DepartmentRegistrator = dog.reg_dep; deal.Customer = cust; deal.Supplier = supl; contract.ContractDeals.Add(deal); if (dog.type == "ДОГ") { deal.ContractKind = ContractKind.CONTRACT; deal.ContractDocument = contract.ContractDocument; } else { deal.ContractKind = ContractKind.ADDENDUM; crmContractDocument contract_document = new crmContractDocument(ses); contract_document.DocumentCategory = GetDocumentCategory(ses, "ДС"); contract_document.Number = dog.dop_num; contract_document.Date = dog.dop_date; deal.ContractDocument = contract_document; contract.ContractDocuments.Add(contract_document); } System.Console.WriteLine(dog.type + ' ' + dog.dog_id + ' ' + dog.dog_num + ' ' + dog.dog_date + ' ' + dog.customer_code + ' ' + dog.supplier_code); ses.CommitChanges(); } } } catch (Exception e) { if (xlWorkSheet != null) { releaseObject(xlWorkSheet); } if (xlWorkBook != null) { releaseObject(xlWorkBook); } if (xlApp != null) { releaseObject(xlApp); } xlWorkSheet = null; xlWorkBook = null; xlApp = null; GC.Collect(); System.Console.WriteLine(e); throw e; } // Закрытие книги xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); } if (args[0] == "subject") { Excel.Application xlApp = null; Excel.Workbook xlWorkBook = null; Excel.Worksheet xlWorkSheet = null; xlApp = new Excel.ApplicationClass(); // Открытие документа (книги) excel xlWorkBook = xlApp.Workbooks.Open("e:\\subject.xlsx"); // Выбирается Лист (если существует) xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); // try { while (true) { using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) { i++; FinanceTema ft = new FinanceTema(); if (xlWorkSheet.get_Range("A" + i).Value2 == null) { break; } ft.dir = xlWorkSheet.get_Range("A" + i).Value2.ToString(); ft.code = xlWorkSheet.get_Range("B" + i).Value2.ToString(); ft.name = xlWorkSheet.get_Range("C" + i).Value2.ToString(); if (xlWorkSheet.get_Range("D" + i).Value2 != null) { ft.desc = xlWorkSheet.get_Range("D" + i).Value2.ToString(); } else { ft.desc = ft.name; } fmCDirection dir = GetObject <fmCDirection>(ses, ft.dir); fmCSubjectExt subj = GetObject <fmCSubjectExt>(ses, ft.code); if (subj == null) { subj = new fmCSubjectExt(ses); } subj.Code = ft.code; subj.Direction = dir; subj.Name = ft.name; subj.NameFull = ft.name; subj.Description = ft.desc; if (subj.Name.Length > 80) { subj.Name = subj.Name.Substring(0, 80); } subj.Save(); System.Console.WriteLine(ft.dir + ' ' + ft.code + ' ' + ft.name); ses.CommitChanges(); } } } catch (Exception e) { if (xlWorkSheet != null) { releaseObject(xlWorkSheet); } if (xlWorkBook != null) { releaseObject(xlWorkBook); } if (xlApp != null) { releaseObject(xlApp); } xlWorkSheet = null; xlWorkBook = null; xlApp = null; GC.Collect(); System.Console.WriteLine(e); throw e; } // Закрытие книги xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); } if (args[0] == "order") { Excel.Application xlApp = null; Excel.Workbook xlWorkBook = null; Excel.Worksheet xlWorkSheet = null; xlApp = new Excel.ApplicationClass(); // Открытие документа (книги) excel xlWorkBook = xlApp.Workbooks.Open("e:\\order2.xlsx"); // Выбирается Лист (если существует) xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); // try { while (true) { using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) { i++; FinanceOrder fo = new FinanceOrder(); if (xlWorkSheet.get_Range("A" + i).Value2 == null) { break; } if (xlWorkSheet.get_Range("A" + i).Value2 is Double) { fo.buh_int_num = (Int32)((Double)xlWorkSheet.get_Range("A" + i).Value2); } if (xlWorkSheet.get_Range("B" + i).Value2 != null) { fo.buh_account = xlWorkSheet.get_Range("B" + i).Value2.ToString(); } else { fo.buh_account = ""; } fo.code = xlWorkSheet.get_Range("C" + i).Value2.ToString(); if (xlWorkSheet.get_Range("D" + i).Value2 != null) { fo.is_closed = true; } else { fo.is_closed = false; } if (xlWorkSheet.get_Range("E" + i).Value2 != null) { fo.subj = xlWorkSheet.get_Range("E" + i).Value2.ToString(); } else { fo.subj = ""; } if (xlWorkSheet.get_Range("F" + i).Value2 != null) { fo.name_short = xlWorkSheet.get_Range("F" + i).Value2.ToString(); } else { fo.name_short = ""; } if (xlWorkSheet.get_Range("G" + i).Value2 != null) { fo.name_full = xlWorkSheet.get_Range("G" + i).Value2.ToString(); } else { fo.name_full = ""; } if (xlWorkSheet.get_Range("H" + i).Value2 != null) { fo.desc = xlWorkSheet.get_Range("H" + i).Value2.ToString(); } else { fo.desc = ""; } if (xlWorkSheet.get_Range("I" + i).Value2 != null) { fo.data_from = xlWorkSheet.get_Range("I" + i).Value2.ToString(); } else { fo.data_from = ""; } if (xlWorkSheet.get_Range("J" + i).Value2 != null) { fo.data_to = xlWorkSheet.get_Range("J" + i).Value2.ToString(); } else { fo.data_to = ""; } if (xlWorkSheet.get_Range("K" + i).Value2 != null) { fo.base_doc = xlWorkSheet.get_Range("K" + i).Value2.ToString(); } else { fo.base_doc = ""; } if (xlWorkSheet.get_Range("L" + i).Value2 != null) { fo.work_type = xlWorkSheet.get_Range("L" + i).Value2.ToString(); } else { fo.work_type = ""; } if (xlWorkSheet.get_Range("M" + i).Value2 != null) { fo.finans = xlWorkSheet.get_Range("M" + i).Value2.ToString(); } else { fo.finans = ""; } if (xlWorkSheet.get_Range("N" + i).Value2 != null) { fo.source = xlWorkSheet.get_Range("N" + i).Value2.ToString(); } else { fo.source = ""; } if (xlWorkSheet.get_Range("O" + i).Value2 != null) { fo.army = xlWorkSheet.get_Range("O" + i).Value2.ToString(); } else { fo.army = ""; } if (xlWorkSheet.get_Range("P" + i).Value2 != null) { fo.nds_mode = xlWorkSheet.get_Range("P" + i).Value2.ToString(); } else { fo.nds_mode = ""; } if (xlWorkSheet.get_Range("Q" + i).Value2 != null) { fo.acc_mode = xlWorkSheet.get_Range("Q" + i).Value2.ToString(); } else { fo.acc_mode = ""; } if (xlWorkSheet.get_Range("R" + i).Value2 != null) { if (xlWorkSheet.get_Range("R" + i).Value2 is Double) { fo.koeff_ozm = (Decimal)((Double)xlWorkSheet.get_Range("R" + i).Value2); } } if (xlWorkSheet.get_Range("S" + i).Value2 != null) { if (xlWorkSheet.get_Range("S" + i).Value2 is Double) { fo.koeff_kb = (Decimal)((Double)xlWorkSheet.get_Range("S" + i).Value2); } } fmCSubjectExt subj = GetObject <fmCSubjectExt>(ses, fo.subj); fmCOrderExt ord = GetObject <fmCOrderExt>(ses, fo.code); if (ord == null) { ord = new fmCOrderExt(ses); ord.Status = fmIOrderStatus.Loaded; } ord.Code = fo.code; ord.Subject = subj; ord.IsClosed = fo.is_closed; ord.Name = fo.name_short; ord.NameFull = fo.name_full; ord.Description = fo.desc; if (!String.IsNullOrEmpty(fo.data_from)) { ord.DateBegin = new DateTime(Int32.Parse(fo.data_from.Substring(0, 4)), Int32.Parse(fo.data_from.Substring(4, 2)), Int32.Parse(fo.data_from.Substring(6, 2))); } if (!String.IsNullOrEmpty(fo.data_to)) { ord.DateEnd = new DateTime(Int32.Parse(fo.data_to.Substring(0, 4)), Int32.Parse(fo.data_to.Substring(4, 2)), Int32.Parse(fo.data_to.Substring(6, 2))); } if (!String.IsNullOrEmpty(fo.acc_mode)) { ord.AnalitycAccouterType = GetObject <fmСOrderAnalitycAccouterType>(ses, fo.acc_mode); } if (!String.IsNullOrEmpty(fo.nds_mode)) { ord.AnalitycAVT = GetObject <fmСOrderAnalitycAVT>(ses, fo.nds_mode); } ord.BuhAccount = fo.buh_account; ord.BuhIntNum = fo.buh_int_num; ord.KoeffKB = fo.koeff_kb; ord.KoeffOZM = fo.koeff_ozm; ord.SourceOther = fo.base_doc; // ord. if (!String.IsNullOrEmpty(fo.work_type)) { ord.AnalitycWorkType = GetObject <fmСOrderAnalitycWorkType>(ses, fo.work_type); } if (!String.IsNullOrEmpty(fo.acc_mode)) { ord.AnalitycFinanceSource = GetObject <fmСOrderAnalitycFinanceSource>(ses, fo.finans); } if (!String.IsNullOrEmpty(fo.acc_mode)) { ord.AnalitycOrderSource = GetObject <fmСOrderAnalitycOrderSource>(ses, fo.source); } if (!String.IsNullOrEmpty(fo.acc_mode)) { ord.AnalitycMilitary = GetObject <fmСOrderAnalitycMilitary>(ses, fo.army); } System.Console.WriteLine(fo.subj + ' ' + fo.code + ' ' + fo.name_short); ses.CommitChanges(); } } } catch (Exception e) { if (xlWorkSheet != null) { releaseObject(xlWorkSheet); } if (xlWorkBook != null) { releaseObject(xlWorkBook); } if (xlApp != null) { releaseObject(xlApp); } xlWorkSheet = null; xlWorkBook = null; xlApp = null; GC.Collect(); System.Console.WriteLine(e); throw e; } // Закрытие книги xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); } }
private void UpdateContractDeals() { using (IObjectSpace os = ObjectSpace.CreateNestedObjectSpace()) { crmUserParty cfr = os.GetObjects <crmUserParty>().FirstOrDefault(x => x.Party.Code == "2518"); IList <TrwSaleNomenclature> sale_noms = os.GetObjects <TrwSaleNomenclature>(); IList <crmContractDeal> deals = os.GetObjects <crmContractDeal>(); foreach (crmContractDeal deal in deals) { if (deal.Current != null) { if (deal.Current.Customer != null && deal.Current.Supplier != null) { if (deal.Current.Customer.CfrUserParty != null && deal.Current.Supplier.CfrUserParty == null) { deal.Current.Customer.CfrUserParty = null; deal.Current.Supplier.CfrUserParty = cfr; } else if (deal.Current.Customer.CfrUserParty == null && deal.Current.Supplier.CfrUserParty != null) { deal.Current.Customer.CfrUserParty = cfr; deal.Current.Supplier.CfrUserParty = null; } } } crmDealWithStage deal_ws = deal as crmDealWithStage; if (deal_ws != null) { crmDealWithStageVersion deal_ws_version = deal_ws.Current as crmDealWithStageVersion; if (deal_ws_version == null) { continue; } foreach (crmStage stage in deal_ws_version.StageStructure.Stages) { if (stage.DeliveryUnits == null) { continue; } foreach (crmDeliveryUnit unit in stage.DeliveryUnits) { foreach (crmDeliveryItem item in unit.DeliveryItems) { if (item.Nomenclature == null) { continue; } if (item.Order == null || item.Nomenclature == null) { continue; } TrwSaleNomenclature nom = sale_noms.FirstOrDefault(x => x.Order == item.Order && x.Nomenclature == item.Nomenclature); if (nom == null) { nom = os.CreateObject <TrwSaleNomenclature>(); nom.Order = item.Order; nom.Nomenclature = item.Nomenclature; } nom.TrwCodeSet(nom.Order.Code + ".9" + nom.Nomenclature.Code); foreach (TrwOrder trw_order in deal_ws.TrwOrders) { if (trw_order.Subject == nom.Order.Subject) { trw_order.TrwSaleNomenclatures.Add(nom); } } } } } } } os.CommitChanges(); } }