public void GenerarOperacion(IStockPieza entrada) { var ms = entrada as MovimientosstockModel; var serializer = new Serializer <TransformacioneslotesDiarioStockSerializable>(); var diario = serializer.SetXml(ms.Documentomovimiento); var historicoStock = Db.Stockhistorico.SingleOrDefault( f => f.empresa == ms.Empresa && f.lote == ms.Lote && f.loteid == ms.Loteid && f.fkarticulos == ms.Fkarticulos); var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, Db) as UnidadesService; var unidadesModel = unidadesService.get(ms.Fkunidadesmedida) as UnidadesModel; if (historicoStock != null) { var nuevapiezaStock = Db.Stockactual.Create(); var properties = nuevapiezaStock.GetType().GetProperties(); foreach (var item in properties) { item.SetValue(nuevapiezaStock, historicoStock.GetType().GetProperty(item.Name).GetValue(historicoStock)); } nuevapiezaStock.largo = ms.Largo; nuevapiezaStock.ancho = ms.Ancho; nuevapiezaStock.grueso = ms.Grueso; nuevapiezaStock.metros = ms.Metros; nuevapiezaStock.costeacicionalvariable = (nuevapiezaStock.costeacicionalvariable ?? 0) + (ms.Costeadicionalvariable ?? 0); nuevapiezaStock.costeadicionalmaterial = (nuevapiezaStock.costeadicionalmaterial ?? 0) + (ms.Costeadicionalmaterial ?? 0); nuevapiezaStock.costeadicionalotro = (nuevapiezaStock.costeadicionalotro ?? 0) + (ms.Costeadicionalotro ?? 0); nuevapiezaStock.costeadicionalportes = (nuevapiezaStock.costeadicionalportes ?? 0) + (ms.Costeadicionalportes ?? 0); nuevapiezaStock.cantidaddisponible = ms.Cantidad; nuevapiezaStock.cantidadtotal = ms.Cantidad; nuevapiezaStock.metros = UnidadesService.CalculaResultado(unidadesModel, Math.Abs(ms.Cantidad), nuevapiezaStock.largo, nuevapiezaStock.ancho, nuevapiezaStock.grueso, nuevapiezaStock.metros ?? 0); nuevapiezaStock.fkarticulos = diario.Fkarticulosnuevo; Db.Stockactual.Add(nuevapiezaStock); } if (historicoStock != null) { var nuevapiezaStock = Db.Stockhistorico.Create(); var properties = historicoStock.GetType().GetProperties(); foreach (var item in properties) { item.SetValue(nuevapiezaStock, historicoStock.GetType().GetProperty(item.Name).GetValue(historicoStock)); } nuevapiezaStock.largo = ms.Largo; nuevapiezaStock.ancho = ms.Ancho; nuevapiezaStock.grueso = ms.Grueso; nuevapiezaStock.metros = ms.Metros; nuevapiezaStock.fkarticulos = diario.Fkarticulosnuevo; nuevapiezaStock.costeacicionalvariable = (nuevapiezaStock.costeacicionalvariable ?? 0) + (ms.Costeadicionalvariable ?? 0); nuevapiezaStock.costeadicionalmaterial = (nuevapiezaStock.costeadicionalmaterial ?? 0) + (ms.Costeadicionalmaterial ?? 0); nuevapiezaStock.costeadicionalotro = (nuevapiezaStock.costeadicionalotro ?? 0) + (ms.Costeadicionalotro ?? 0); nuevapiezaStock.costeadicionalportes = (nuevapiezaStock.costeadicionalportes ?? 0) + (ms.Costeadicionalportes ?? 0); nuevapiezaStock.cantidaddisponible = ms.Cantidad; nuevapiezaStock.cantidadtotal = ms.Cantidad; nuevapiezaStock.metros = UnidadesService.CalculaResultado(unidadesModel, Math.Abs(ms.Cantidad), nuevapiezaStock.largo, nuevapiezaStock.ancho, nuevapiezaStock.grueso, nuevapiezaStock.metros ?? 0); Db.Stockhistorico.Remove(historicoStock); Db.Stockhistorico.Add(nuevapiezaStock); } }
public ILineaImportar ImportarLinea(ILineaImportar model) { var articuloObj = _serviceArticulos.get(model.Fkarticulos) as ArticulosModel; var unidadesObj = _serviceUnidades.get(articuloObj.Fkunidades) as UnidadesModel; model.Metros = UnidadesService.CalculaResultado(unidadesObj, model.Cantidad, model.Largo ?? 0, model.Ancho ?? 0, model.Grueso ?? 0, model.Metros); model.Importe = model.Metros * model.Precio; return(model); }
private void ProcessarUnidade(string codigoUnidade) { if (String.IsNullOrWhiteSpace(codigoUnidade)) { return; } if (!DadosArquivoFiscalService.RegistroJaExistente("0190", codigoUnidade)) { // Apenas persiste uma unidade se a mesma ainda não tiver sido processada this.UpdateStatusAsynchronousExecution("Gerando Registro 0190"); Registro0190 reg0190 = UnidadesService.GetRegistro0190(codigoUnidade); if (reg0190 != null) { DadosArquivoFiscalService.PersistirRegistro(reg0190); } } }
private void ProcessarUnidade(string codigoUnidade, string codEmp) { if (String.IsNullOrWhiteSpace(codigoUnidade)) { return; } Registro0190 reg0190 = UnidadesService.GetRegistro0190(codigoUnidade); if (reg0190 != null) { if (unidades.Where(c => c.codEmp == codEmp && c.registro.ToString() == reg0190.ToString()).Count() == 0) { // Apenas persiste uma unidade se a mesma ainda não tiver sido processada //this.UpdateStatusAsynchronousExecution("Gerando Registro 0190"); //DadosArquivoPisCofinsService.PersistirRegistro(reg0190); unidades.Add(new validacao { codEmp = codEmp, registro = reg0190 }); } } }
private void ProcessarProduto(string codigoProduto) { if (String.IsNullOrWhiteSpace(codigoProduto)) { return; } IEnumerable <Registro0220> lreg220; if (!DadosArquivoFiscalService.RegistroJaExistente("0200", codigoProduto)) { // Apenas persiste uma unidade se a mesma ainda não tiver sido processada this.UpdateStatusAsynchronousExecution("Gerando Registro 0200"); Registro0200 reg0200 = ProdutosService.GetRegistro0200(codigoProduto); if (reg0200 != null) { DadosArquivoFiscalService.PersistirRegistro(reg0200); this.ProcessarUnidade(reg0200.UNID_INV); lreg220 = ProdutosService.GetRegistros0220(reg0200.COD_ITEM); foreach (Registro0220 item in lreg220) { this.UpdateStatusAsynchronousExecution("Gerando Registros 0220"); //item.FAT_CONV if (!DadosArquivoFiscalService.RegistroJaExistente("0190", item.UNID_CONV)) { // Apenas persiste uma unidade se a mesma ainda não tiver sido processada this.UpdateStatusAsynchronousExecution("Gerando Registro 0190"); Registro0190 reg0190 = UnidadesService.GetRegistro0190(item.UNID_CONV); if (reg0190 != null) { DadosArquivoFiscalService.PersistirRegistro(reg0190); } } DadosArquivoFiscalService.PersistirRegistro(item); } } } }
public UnidadesStartup(IContextService context, MarfilEntities db) { _context = context; _tablasVariasService = new UnidadesService(context, db); }
private Stockactual EditarPieza(MovimientosstockModel model) { var item = _db.Stockactual.Single(f => f.empresa == model.Empresa && f.fkalmacenes == model.Fkalmacenes && f.fkarticulos == model.Fkarticulos && f.lote == model.Lote && f.loteid == model.Loteid); if (model.Tipomovimiento == TipoOperacionService.MovimientoRemedir) { var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService; var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService; var articuloObj = articulosService.GetArticulo(model.Fkarticulos); var unidadesObj = unidadesService.get(model.Fkunidadesmedida) as UnidadesModel; if (articuloObj.Permitemodificarlargo) { item.largo = model.Largo; } if (articuloObj.Permitemodificarancho) { item.ancho = model.Ancho; } if (articuloObj.Permitemodificargrueso) { item.grueso = model.Grueso; } var metros = UnidadesService.CalculaResultado(unidadesObj, model.Cantidad, item.largo, item.ancho, item.grueso, item.metros ?? 0); item.metros = metros; model.Metros = metros; if (model.Pesoneto.HasValue) { item.pesonetolote = (model.Pesoneto ?? 0) * (item.metros ?? 0); model.Pesoneto = item.pesonetolote; } item.referenciaproveedor = model.Referenciaproveedor; if (model.Fkalmaceneszona > 0) { item.fkalmaceneszona = model.Fkalmaceneszona; } item.fkincidenciasmaterial = model.Fkincidenciasmaterial; item.fkcalificacioncomercial = model.Fkcalificacioncomercial; item.fktipograno = model.Fktipograno; item.fktonomaterial = model.Fktonomaterial; item.fkvariedades = model.Fkvariedades; } else if (model.Tipomovimiento == TipoOperacionService.MovimientoAlmacen) { item.fkalmaceneszona = model.Ubicaciondestino; var historicoitem = _db.Stockhistorico.SingleOrDefault(f => f.empresa == model.Empresa && f.fkalmacenes == model.Fkalmacenes && f.fkarticulos == model.Fkarticulos && f.lote == model.Lote && f.loteid == model.Loteid) ?? _db.Stockhistorico.Create(); historicoitem.fkalmaceneszona = model.Ubicaciondestino; return(item); } else if (model.Tipomovimiento == TipoOperacionService.InsertarReservaStock || model.Tipomovimiento == TipoOperacionService.EliminarReservaStock) { item.cantidaddisponible += model.Cantidad; } else { var operacion = (model.Cantidad < 0) ? -1 : 1; var piezautilizada = PiezaUtilizada(model); item.cantidadtotal += model.Cantidad; item.cantidaddisponible += model.Cantidad; item.integridadreferencialflag = Guid.NewGuid(); if (!piezautilizada) { item.metros += model.Metros; if (operacion > 0) { item.largo = model.Largo; item.ancho = model.Ancho; item.grueso = model.Grueso; item.metros = model.Metros; } } else { item.metros += model.Metros * operacion; } //No tiene sentido los costes adicionales en el stock actual //item.costeacicionalvariable = (item.costeacicionalvariable ?? 0) + model.Costeadicionalvariable; //item.costeadicionalmaterial = (item.costeadicionalmaterial ?? 0) + model.Costeadicionalmaterial; //item.costeadicionalotro = (item.costeadicionalotro ?? 0) + model.Costeadicionalotro; //item.costeadicionalportes = (item.costeadicionalportes ?? 0) + model.Costeadicionalportes; item.pesonetolote += model.Pesoneto; item.tipoalmacenlote = (int?)model.Tipodealmacenlote; } StockhistoricoAddOrUpdate(model); return(item); }
private Stockactual EditarPieza(IStockPieza entrada) { var model = entrada as MovimientosstockModel; var item = Db.Stockactual.Single(f => f.empresa == model.Empresa && f.fkalmacenes == model.Fkalmacenes && f.fkarticulos == model.Fkarticulos && f.lote == model.Lote && f.loteid == model.Loteid); var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, Db) as ArticulosService; var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, Db) as UnidadesService; var articuloObj = articulosService.GetArticulo(model.Fkarticulos); var unidadesObj = unidadesService.get(model.Fkunidadesmedida) as UnidadesModel; if (articuloObj.Permitemodificarlargo) { item.largo = model.Largo; } if (articuloObj.Permitemodificarancho) { item.ancho = model.Ancho; } if (articuloObj.Permitemodificargrueso) { item.grueso = model.Grueso; } var metros = UnidadesService.CalculaResultado(unidadesObj, model.Cantidad, model.Largo, model.Ancho, model.Grueso, item.metros ?? 0); item.metros = metros; if (model.Pesoneto.HasValue) { item.pesonetolote = (model.Pesoneto ?? 0) * (item.metros ?? 0); } item.referenciaproveedor = model.Referenciaproveedor; item.fkalmaceneszona = model.Fkalmaceneszona; item.fkincidenciasmaterial = model.Fkincidenciasmaterial; item.fkcalificacioncomercial = model.Fkcalificacioncomercial; item.fktipograno = model.Fktipograno; item.fktonomaterial = model.Fktonomaterial; item.fkvariedades = model.Fkvariedades; var historicoitem = Db.Stockhistorico.Single(f => f.empresa == model.Empresa && f.fkalmacenes == model.Fkalmacenes && f.fkarticulos == model.Fkarticulos && f.lote == model.Lote && f.loteid == model.Loteid); if (model.Pesoneto.HasValue) { historicoitem.pesonetolote = item.pesonetolote; } historicoitem.largo = item.largo; historicoitem.ancho = item.ancho; historicoitem.grueso = item.grueso; historicoitem.metros = item.metros; historicoitem.referenciaproveedor = item.referenciaproveedor; historicoitem.fkalmaceneszona = item.fkalmaceneszona; historicoitem.fkincidenciasmaterial = item.fkincidenciasmaterial; historicoitem.fkcalificacioncomercial = item.fkcalificacioncomercial; historicoitem.fktipograno = item.fktipograno; historicoitem.fktonomaterial = item.fktonomaterial; historicoitem.fkvariedades = item.fkvariedades; //Db.Stockhistorico.AddOrUpdate(historicoitem); return(item); }
public ImportacionService(IContextService context) { _context = context; _serviceArticulos = FService.Instance.GetService(typeof(ArticulosModel), _context) as ArticulosService; _serviceUnidades = FService.Instance.GetService(typeof(UnidadesModel), _context) as UnidadesService; }