public Decimal guardarAjuste(String tipo, String idRegional, String idCiudad, int idEmpresa, int idProducto, String talla, int idLote, int CantidadMod, Decimal costo, String Motivo, List<EquipoAjuste> listaEquiposAjuste, String NOMBRE_SERVICIO_COMPLEMENTARIO) { Decimal idDoc = 0; DateTime fecha; Decimal idInventario = 0; Boolean correcto = true; fecha = System.DateTime.Today; Conexion _dato = new Conexion(Empresa); _dato.IniciarTransaccion(); try { documento_temp _doc = new documento_temp(Empresa, Usuario); idDoc = _doc.AdicionarAlmDocumentosTemp(0, "AJUSTE", "", fecha, new DateTime(), 0, "POR APROBAR", Motivo, _dato); if (idDoc <= 0) { correcto = false; MensajeError = _doc.MensajeError; _dato.DeshacerTransaccion(); } else { bodega _bodega = new bodega(Empresa, Usuario); _bodega.MensajeError = null; DataTable tablaBodega = _bodega.ObtenerAlmRegBodegaPorIds(idRegional, idCiudad, idEmpresa, _dato); if (_bodega.MensajeError != null) { correcto = false; _dato.DeshacerTransaccion(); MensajeError = _bodega.MensajeError; } else { DataRow filaBodega = tablaBodega.Rows[0]; lote _lote = new lote(Empresa, Usuario); _lote.MensajeError = null; DataTable tablaLote = _lote.ObtenerAlmLotePorId(idLote, _dato); if (_lote.MensajeError != null) { correcto = false; _dato.DeshacerTransaccion(); MensajeError = _bodega.MensajeError; } else { DataRow filalote = tablaLote.Rows[0]; if (tipo.Equals("COSTO")) { idInventario = AdicionarAlmInventarioTemp(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), idLote, 0, talla, CantidadMod, costo, fecha, "COSTO", _dato); if (idInventario == 0) { correcto = false; _dato.DeshacerTransaccion(); MensajeError = _bodega.MensajeError; } } else if (tipo.Equals("ENTRADA")) { if (NOMBRE_SERVICIO_COMPLEMENTARIO != "EQUIPOS") { idInventario = AdicionarAlmInventarioTemp(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), idLote, 0, talla, CantidadMod, Convert.ToDecimal(filalote["COSTO"]), fecha, "ENTRADA", _dato); if (idInventario == 0) { correcto = false; _dato.DeshacerTransaccion(); MensajeError = _bodega.MensajeError; } } else { foreach (EquipoAjuste equipo in listaEquiposAjuste) { EquipoEntradaTemp _equipoTemp = new EquipoEntradaTemp(Empresa, Usuario); Decimal ID_EQUIPO_TEMP = _equipoTemp.AdicionarAlmEquipoEntradaTemp(equipo.ID_DOCUMENTO, equipo.MARCA, equipo.MODELO, equipo.SERIE, equipo.IMEI, equipo.NUMERO_CELULAR, fecha, equipo.ID_LOTE, _dato); if (ID_EQUIPO_TEMP <= 0) { correcto = false; _dato.DeshacerTransaccion(); MensajeError = _bodega.MensajeError; break; } else { idInventario = AdicionarAlmInventarioTemp(Convert.ToInt32(idDoc), Convert.ToInt32(equipo.ID_PRODUCTO), Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), idLote, Convert.ToInt32(ID_EQUIPO_TEMP), talla, 1, Convert.ToDecimal(filalote["COSTO"]), fecha, "ENTRADA", _dato); if (idInventario == 0) { correcto = false; _dato.DeshacerTransaccion(); MensajeError = _bodega.MensajeError; break; } } } } } else { if (NOMBRE_SERVICIO_COMPLEMENTARIO != "EQUIPOS") { idInventario = AdicionarAlmInventarioTemp(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), idLote, 0, talla, CantidadMod, Convert.ToDecimal(filalote["COSTO"]), fecha, "SALIDA", _dato); if (idInventario == 0) { correcto = false; _dato.DeshacerTransaccion(); MensajeError = _bodega.MensajeError; } } else { foreach (EquipoAjuste equipo in listaEquiposAjuste) { idInventario = AdicionarAlmInventarioTemp(Convert.ToInt32(idDoc), Convert.ToInt32(equipo.ID_PRODUCTO), Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), idLote, Convert.ToInt32(equipo.ID_EQUIPO), talla, 1, Convert.ToDecimal(filalote["COSTO"]), fecha, "SALIDA", _dato); if (idInventario == 0) { correcto = false; _dato.DeshacerTransaccion(); MensajeError = _bodega.MensajeError; break; } } } } } } } if (correcto == true) { _dato.AceptarTransaccion(); } } catch (Exception ex) { correcto = false; MensajeError = ex.Message; _dato.DeshacerTransaccion(); } finally { _dato.Desconectar(); } if (correcto == true) { return idDoc; } else { return 0; } }
public Decimal guardarAjusteEquipo(String tipo, String idRegional, String idCiudad, int idEmpresa, int idProducto, int idEquipo, String talla, int idLote, int CantidadMod, Decimal costo, String Motivo) { Decimal idDoc = 0; DateTime fecha; Decimal idInventario = 0; fecha = System.DateTime.Today; Conexion _dato = new Conexion(Empresa); _dato.IniciarTransaccion(); documento_temp _doc = new documento_temp(Empresa, Usuario); idDoc = _doc.AdicionarAlmDocumentosTemp(0, "AJUSTE", "", fecha, Convert.ToDateTime("01/01/1900"), 0, "POR APROBAR", Motivo, _dato); if (idDoc != 0) { bodega _bodega = new bodega(Empresa, Usuario); DataTable tablaBodega = _bodega.ObtenerAlmRegBodegaPorIds(idRegional, idCiudad, idEmpresa); DataRow filaBodega = tablaBodega.Rows[0]; lote _lote = new lote(Empresa, Usuario); DataTable tablaLote = _lote.ObtenerAlmLotePorId(idLote); DataRow filalote = tablaLote.Rows[0]; if (tipo.Equals("COSTO")) { idInventario = AdicionarAlmInventarioTemp(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), idLote, idEquipo, talla, CantidadMod, costo, fecha, "MODIFICACION", _dato); if (idInventario == 0) { _dato.DeshacerTransaccion(); idDoc = 0; } else { _dato.AceptarTransaccion(); } } else if (tipo.Equals("ENTRADA")) { int contenido; contenido = Convert.ToInt32(filalote["ENTRADAS"].ToString()) - Convert.ToInt32(filalote["SALIDAS"].ToString()); contenido = CantidadMod - contenido; idInventario = AdicionarAlmInventarioTemp(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), idLote, idEquipo, talla, contenido, 0, fecha, "ENTRADA", _dato); if (idInventario == 0) { _dato.DeshacerTransaccion(); idDoc = 0; } else { _dato.AceptarTransaccion(); } } else { int contenido; contenido = Convert.ToInt32(filalote["ENTRADAS"].ToString()) - Convert.ToInt32(filalote["SALIDAS"].ToString()); contenido = contenido - CantidadMod; idInventario = AdicionarAlmInventarioTemp(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), idLote, idEquipo, talla, contenido, 0, fecha, "SALIDA", _dato); if (idInventario == 0) { _dato.DeshacerTransaccion(); idDoc = 0; } else { _dato.AceptarTransaccion(); } } } else { _dato.DeshacerTransaccion(); MensajeError = _doc.MensajeError; idDoc = 0; } return idDoc; }
public Decimal guardarAjuste(String tipo, String idRegional, String idCiudad, int idEmpresa, int idProducto, String talla, int idLote, int CantidadMod, Decimal costo, String Motivo, Decimal idDocTemp, List<EquipoAjuste> listaEquiposAjuste, String NOMBRE_SERVICIO_COMPLEMENTARIO, String OBS_AUTORIZACION) { Decimal idDoc = 0; DateTime fecha; Decimal idInventario = 0; Boolean correcto = true; fecha = System.DateTime.Today; Conexion _dato = new Conexion(Empresa); _dato.IniciarTransaccion(); try { documento _doc = new documento(Empresa, Usuario); idDoc = _doc.AdicionarAlmDocumentos(0, Convert.ToInt32(idDocTemp), "AJUSTE", "", "", fecha, new DateTime(), 0, 0, 0, "APROBADO", Motivo, _dato, 0, OBS_AUTORIZACION); if (idDoc <= 0) { _dato.DeshacerTransaccion(); correcto = false; MensajeError = _doc.MensajeError; } else { bodega _bodega = new bodega(Empresa, Usuario); DataTable tablaBodega = _bodega.ObtenerAlmRegBodegaPorIds(idRegional, idCiudad, idEmpresa, _dato); if (_bodega.MensajeError != null) { _dato.DeshacerTransaccion(); correcto = false; MensajeError = _bodega.MensajeError; } else { DataRow filaBodega = tablaBodega.Rows[0]; lote _lote = new lote(Empresa, Usuario); DataTable tablaLote = _lote.ObtenerAlmLotePorId(idLote, _dato); if (_lote.MensajeError != null) { _dato.DeshacerTransaccion(); correcto = false; MensajeError = _bodega.MensajeError; } else { DataRow filalote = tablaLote.Rows[0]; if (tipo.Equals("COSTO")) { idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"]), 0, costo, fecha, "COSTO", _dato, idLote, talla, 0, 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario <= 0) { _dato.DeshacerTransaccion(); correcto = false; } else { if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(filalote["ID_DOCUMENTO"]), idProducto, Convert.ToInt32(filalote["ID_BODEGA"]), Convert.ToDateTime(filalote["FECHA_REGISTRO"]), Convert.ToInt32(filalote["ENTRADAS"]), Convert.ToInt32(filalote["SALIDAS"]), costo, filalote["TALLA"].ToString(), filalote["ACTIVO"].ToString(), _dato) == false) { _dato.DeshacerTransaccion(); correcto = false; MensajeError = _lote.MensajeError; } } } else if (tipo.Equals("ENTRADA")) { int contenido = 0; int entradas = 0; int salidas = 0; if (NOMBRE_SERVICIO_COMPLEMENTARIO != "EQUIPOS") { entradas = Convert.ToInt32(filalote["ENTRADAS"]) + CantidadMod; salidas = Convert.ToInt32(filalote["SALIDAS"]); contenido = entradas - salidas; String activo = "S"; if (contenido <= 0) { activo = "N"; } idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"]), CantidadMod, Convert.ToDecimal(filalote["COSTO"]), fecha, "ENTRADA", _dato, idLote, filalote["TALLA"].ToString(), 0, 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario <= 0) { _dato.DeshacerTransaccion(); correcto = false; } else { if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(filalote["ID_DOCUMENTO"]), idProducto, Convert.ToInt32(filalote["ID_BODEGA"]), Convert.ToDateTime(filalote["FECHA_REGISTRO"]), entradas, salidas, Convert.ToDecimal(filalote["COSTO"]), filalote["TALLA"].ToString(), activo, _dato) == false) { _dato.DeshacerTransaccion(); correcto = false; MensajeError += _lote.MensajeError; } } } else { producto _prod = new producto(Empresa, Usuario); entradas = Convert.ToInt32(filalote["ENTRADAS"]); salidas = Convert.ToInt32(filalote["SALIDAS"]); foreach (EquipoAjuste equipo in listaEquiposAjuste) { Decimal ID_NUEVO_EQUIPO = _prod.AdicionarAlmEquipo(Convert.ToInt32(equipo.ID_DOCUMENTO), equipo.MARCA, equipo.MODELO, equipo.SERIE, equipo.IMEI, equipo.NUMERO_CELULAR, "S", fecha, Convert.ToDecimal(idLote), _dato); if (ID_NUEVO_EQUIPO <= 0) { _dato.DeshacerTransaccion(); correcto = false; MensajeError += _lote.MensajeError; break; } else { entradas += 1; contenido = entradas - salidas; String activo = "S"; if (contenido <= 0) { activo = "N"; } idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"]), 1, Convert.ToDecimal(filalote["COSTO"]), fecha, "ENTRADA", _dato, idLote, filalote["TALLA"].ToString(), Convert.ToInt32(ID_NUEVO_EQUIPO), 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario <= 0) { _dato.DeshacerTransaccion(); correcto = false; break; } else { if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(filalote["ID_DOCUMENTO"]), idProducto, Convert.ToInt32(filalote["ID_BODEGA"]), Convert.ToDateTime(filalote["FECHA_REGISTRO"]), entradas, salidas, Convert.ToDecimal(filalote["COSTO"]), filalote["TALLA"].ToString(), activo, _dato) == false) { _dato.DeshacerTransaccion(); correcto = false; MensajeError += _lote.MensajeError; break; } } } } } } else { int contenido = 0; int entradas = 0; int salidas = 0; if (NOMBRE_SERVICIO_COMPLEMENTARIO != "EQUIPOS") { entradas = Convert.ToInt32(filalote["ENTRADAS"]); salidas = Convert.ToInt32(filalote["SALIDAS"]) + CantidadMod; contenido = entradas - salidas; String activo = "S"; if (contenido <= 0) { activo = "N"; } idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"]), CantidadMod, Convert.ToDecimal(filalote["COSTO"]), fecha, "SALIDA", _dato, idLote, filalote["TALLA"].ToString(), 0, 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario <= 0) { _dato.DeshacerTransaccion(); correcto = false; } else { if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(filalote["ID_DOCUMENTO"]), idProducto, Convert.ToInt32(filalote["ID_BODEGA"]), Convert.ToDateTime(filalote["FECHA_REGISTRO"]), entradas, salidas, Convert.ToDecimal(filalote["COSTO"]), filalote["TALLA"].ToString(), activo, _dato) == false) { _dato.DeshacerTransaccion(); correcto = false; MensajeError += _lote.MensajeError; } } } else { producto _prod = new producto(Empresa, Usuario); entradas = Convert.ToInt32(filalote["ENTRADAS"]); salidas = Convert.ToInt32(filalote["SALIDAS"]); foreach (EquipoAjuste equipo in listaEquiposAjuste) { if (_prod.ActualizarAlmEquipoIdLoteActualIDocumentoActualParaSalida(equipo.ID_EQUIPO, "N", 0, 0, _dato) == false) { _dato.DeshacerTransaccion(); correcto = false; MensajeError += _prod.MensajeError; break; } else { salidas += 1; contenido = entradas - salidas; String activo = "S"; if (contenido <= 0) { activo = "N"; } idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"]), 1, Convert.ToDecimal(filalote["COSTO"]), fecha, "SALIDA", _dato, idLote, filalote["TALLA"].ToString(), Convert.ToInt32(equipo.ID_EQUIPO), 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario <= 0) { _dato.DeshacerTransaccion(); correcto = false; break; } else { if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(filalote["ID_DOCUMENTO"]), idProducto, Convert.ToInt32(filalote["ID_BODEGA"]), Convert.ToDateTime(filalote["FECHA_REGISTRO"]), entradas, salidas, Convert.ToDecimal(filalote["COSTO"]), filalote["TALLA"].ToString(), activo, _dato) == false) { _dato.DeshacerTransaccion(); correcto = false; MensajeError += _lote.MensajeError; break; } } } } } } } } } if (correcto == true) { documento_temp _docTemp = new documento_temp(Empresa, Usuario); if (_docTemp.ActualizarAlmDocumentoTemp(Convert.ToInt32(idDocTemp), Convert.ToDateTime(DateTime.Now.ToShortDateString()), "APROBADO", _dato, OBS_AUTORIZACION) == false) { _dato.DeshacerTransaccion(); correcto = false; MensajeError = _docTemp.MensajeError; } } if (correcto == true) { _dato.AceptarTransaccion(); } } catch (Exception ex) { _dato.DeshacerTransaccion(); correcto = false; MensajeError = ex.Message; } finally { _dato.Desconectar(); } if (correcto == true) { return idDoc; } else { return 0; } }