public ExpenditureInvoiceSetStateSP(ExpenditureInvoice entity, InvoiceForTransmissionInUnitState newState, InvoiceForTransmissionInUnitInState newStateIn) { RN = entity.Rn; WorkDate = entity.WorkDate; InWorkDate = entity.WorkDate; StateIn = newStateIn; State = newState; }
internal static IList <ExpenditureInvoiceSpecification> GenerateExpenditureInvoiceSpecifications( ISession session, ExpenditureInvoice parent) { return (Builder <ExpenditureInvoiceSpecification> .CreateListOfSize(5) .All() .With(x => x.GoodsParty = SampleEntity.CreateGoodsParty()) .With(x => x.ExpenditureInvoice = parent) .With(x => x.NomenclatureNumberModification = SampleEntity.GetNomModif()) .Build()); }
public ChangeStatusExpenditureInvoiceSP( ExpenditureInvoice expenditureInvoice, InvoiceForTransmissionInUnitState state, InvoiceForTransmissionInUnitInState inState, DateTime dateOfPosting = default(DateTime), DateTime dateOfConfirm = default(DateTime)) { Rn = expenditureInvoice.Rn; State = state; InState = inState; DateOfPosting = dateOfPosting == default(DateTime) ? DateTime.Now : dateOfPosting; DateOfConfirm = dateOfConfirm == default(DateTime) ? DateTime.Now : dateOfConfirm; }
public long TakeMaterial( decimal quantity, DateTime dateOfBook, string numberOfBook, StoreGasStationOilDepot storeGasStationOilDepot, long certificateQualityUid, EmployeeDto controller, EmployeeDto customer) { var repositoryCertificateQuality = _repositoryFactory.Create <CertificateQuality>(); var repositoryExpInvoice = _repositoryFactory.Create <ExpenditureInvoice>(); var repositoryDocumentLinks = _repositoryFactory.Create <RelationshipBetweenDocuments>(); var repositoryWarehouseQualityCertificate = _repositoryFactory.Create <WarehouseQualityCertificate>(); var repositoryCreditSlipSpecs = _repositoryFactory.Create <CreditSlipSpecification>(); var repositoryGoodsSupply = _repositoryFactory.Create <GoodsSupply>(); var certificateQuality = repositoryCertificateQuality.Get(certificateQualityUid); var doclinksUid = repositoryDocumentLinks.Specify() .Where(x => x.InDocument == certificateQuality.Rn) .And(x => x.InUnitCode == NamesOfSectionSystem.CertificateQuality) .And(x => x.OutUnitCode == NamesOfSectionSystem.CreditSlipSpecification) .Select(x => x.OutDocument) .Future <long>(); var creditSlipSpecs = repositoryCreditSlipSpecs.Specify() .IsInEmpty(x => x.Rn, doclinksUid.ToArray()) .Future <CreditSlipSpecification>(); var measure = creditSlipSpecs.First().NomenclatureNumberModification.NomenclatureNumber.DicmuntUmeasMain; var goodsSupplies = repositoryGoodsSupply.Specify() .IsInEmpty(x => x.Rn, creditSlipSpecs.Select(x => x.GOODSSUPPLY).ToArray()) .Future <GoodsSupply>(); var store = goodsSupplies.First().StoreGasStationOilDepot; var sumRest = goodsSupplies.Sum(x => x.RESTFACT); if (sumRest < quantity) { throw new DepartmentOrderException( Resource.EIS_0.StringFormat( certificateQuality.FullRepresentation, certificateQuality.NomerCertificata, sumRest, measure.Code, quantity)); } var rest = quantity; var dictionaryGoodsSupply = new Dictionary <GoodsSupply, decimal>(); foreach (var elem in goodsSupplies) { if (elem.RESTFACT - rest >= 0) { dictionaryGoodsSupply.Add(elem, rest); break; } if (elem.RESTFACT - rest <= 0) { dictionaryGoodsSupply.Add(elem, elem.RESTFACT); rest = rest - elem.RESTFACT; } } var expenditureInvoice = new ExpenditureInvoice { Catalog = new Catalog(49528001), LegalPerson = new LegalPerson { Rn = LegalPerson.GPO }, TypeOfDocument = new TypeOfDocument { Rn = TypeOfDocument.ExpenditureInvoice }, Pref = store.Number.ShortYear(), Docdate = DateTime.Now, Stoper = new KindOfWarehouseOperations { Rn = KindOfWarehouseOperations.InternalMovingExpense }, Store = store, ViewShipment = 246316267, NameOfCurrency = new NameOfCurrency { Rn = NameOfCurrency.Rub }, CurCours = 1, CurBase = 1, SummWithnds = 0, InStore = storeGasStationOilDepot, InCurcours = 1, InCurBase = 1, TypeOfDocumentValidTypeOfDocument = new TypeOfDocument { Rn = 246318164 }, ValidDocDate = dateOfBook, ValidDocNumb = numberOfBook, }; dictionaryGoodsSupply.DoForEach( x => { var expenditureInvoiceSpecification = new ExpenditureInvoiceSpecification { ExpenditureInvoice = expenditureInvoice, NomenclatureNumberModification = x.Key.GoodsParty.NomenclatureNumberModification, Price = 0, Quantity = x.Value, QuantityAlt = 0, Coeff = 0, CoeffValSign = 0, CoeffValcSign = 1, PriceMeasure = 0, SummWithNDS = 0, GoodsParty = x.Key.GoodsParty }; expenditureInvoice.ExpenditureInvoiceSpecifications.Add(expenditureInvoiceSpecification); }); repositoryExpInvoice.Insert(expenditureInvoice); expenditureInvoice.WorkDate = DateTime.Now; repositoryExpInvoice.ExecuteSPUniqueResult <ExpenditureInvoice>( new ExpenditureInvoiceSetStateSP( expenditureInvoice, InvoiceForTransmissionInUnitState.WorkFact, InvoiceForTransmissionInUnitInState.Yes)); var warehouseQualityCertificate = new WarehouseQualityCertificate { ControllerQuality = new Contractor { Rn = controller.Rn }, Customer = new Contractor { Rn = customer.Rn }, //Catalog = new Catalog(1007400827), Catalog = new Catalog(1195988283), ExpenditureInvoice = expenditureInvoice }; var certificateUid = (long)repositoryWarehouseQualityCertificate.Insert(warehouseQualityCertificate); var documentLink = new RelationshipBetweenDocuments { InDocument = certificateQuality.Rn, OutDocument = warehouseQualityCertificate.Rn, InUnitCode = NamesOfSectionSystem.CertificateQuality, OutUnitCode = NamesOfSectionSystem.WarehouseQualityCertificate }; repositoryDocumentLinks.Insert(documentLink); return(certificateUid); }