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 _doc = new documento(Empresa, Usuario); idDoc = _doc.AdicionarAlmDocumentos(0, 0, "AJUSTE", "", "", fecha, new DateTime(), 0, 0, 0, "", Motivo, _dato, 0, null); 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, _dato); DataRow filalote = tablaLote.Rows[0]; if (tipo.Equals("COSTO")) { idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), 0, costo, fecha, "MODIFICACION", _dato, idLote, talla, idEquipo, 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario == 0) { _dato.DeshacerTransaccion(); } else { if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filalote["ID_BODEGA"].ToString()), Convert.ToDateTime(filalote["FECHA_REGISTRO"]), Convert.ToInt32(filalote["ENTRADAS"]), Convert.ToInt32(filalote["SALIDAS"]), costo, talla, "S", _dato)) { _dato.AceptarTransaccion(); } else { _dato.DeshacerTransaccion(); MensajeError += _lote.MensajeError; } } } else if (tipo.Equals("ENTRADA")) { int contenido; contenido = Convert.ToInt32(filalote["ENTRADAS"].ToString()) - Convert.ToInt32(filalote["SALIDAS"].ToString()); contenido = CantidadMod - contenido; idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), contenido, 0, fecha, "ENTRADA", _dato, idLote, talla, idEquipo, 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario == 0) { _dato.DeshacerTransaccion(); } else { if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filalote["ID_BODEGA"].ToString()), Convert.ToDateTime(filalote["FECHA_REGISTRO"]), Convert.ToInt32(filalote["ENTRADAS"].ToString()) + contenido, Convert.ToInt32(filalote["SALIDAS"]), Convert.ToDecimal(filalote["COSTO"].ToString()), talla, "S", _dato)) { _dato.AceptarTransaccion(); } else { _dato.DeshacerTransaccion(); idDoc = 0; MensajeError += _lote.MensajeError; } } } else { int contenido; contenido = Convert.ToInt32(filalote["ENTRADAS"].ToString()) - Convert.ToInt32(filalote["SALIDAS"].ToString()); contenido = contenido - CantidadMod; idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()), contenido, 0, fecha, "SALIDA", _dato, idLote, talla, idEquipo, 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario == 0) { _dato.DeshacerTransaccion(); idDoc = 0; } else { if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(idDoc), idProducto, Convert.ToInt32(filalote["ID_BODEGA"].ToString()), Convert.ToDateTime(filalote["FECHA_REGISTRO"]), Convert.ToInt32(filalote["ENTRADAS"].ToString()), Convert.ToInt32(filalote["SALIDAS"].ToString()) + contenido, Convert.ToDecimal(filalote["COSTO"]), talla, "S", _dato)) { _dato.AceptarTransaccion(); } else { _dato.DeshacerTransaccion(); idDoc = 0; MensajeError += _lote.MensajeError; } } } } else { _dato.DeshacerTransaccion(); MensajeError = _doc.MensajeError; idDoc = 0; } return idDoc; }
public Decimal guardarTraslado(Decimal id_bodega_origen, List<int> lista_productos, List<int> lista_Cantidades, List<int> lista_lotes, Decimal id_bodega_destino, String Observaciones, List<String> talla, List<EquipoTraslado> listaEquiposTraslado) { int cantidadRegistrosActualizados = 0; int ConteLo; DateTime fecha = System.DateTime.Today; Decimal idInventario = 0; Decimal idDOC = 0; Boolean correcto = true; Conexion conexion = new Conexion(Empresa); conexion.IniciarTransaccion(); try { lote _lote = new lote(Empresa, Usuario); documento _doc = new documento(Empresa, Usuario); idDOC = _doc.AdicionarAlmDocumentos(0, 0, "TRASLADO", "", "", fecha, new DateTime(), Convert.ToInt32(id_bodega_destino), 0, 0, "ELABORADO", Observaciones, conexion, 0, null); if (idDOC == 0) { conexion.DeshacerTransaccion(); correcto = false; MensajeError = _doc.MensajeError; } else { for (int i = 0; i < lista_productos.Count; i++) { _lote.MensajeError = null; DataTable tablalo = _lote.ObtenerAlmLotePorId(lista_lotes[i], conexion); if (_lote.MensajeError != null) { conexion.DeshacerTransaccion(); correcto = false; break; } else { DataRow filalo = tablalo.Rows[0]; ConteLo = Convert.ToInt32(filalo["ENTRADAS"]) - Convert.ToInt32(filalo["SALIDAS"]); if (lista_Cantidades[i] <= ConteLo) { idInventario = AdicionarAlmInventario(Convert.ToInt32(idDOC), lista_productos[i], Convert.ToInt32(id_bodega_origen), lista_Cantidades[i], Convert.ToDecimal(filalo["COSTO"]), fecha, "SALIDA", conexion, lista_lotes[i], talla[i], 0, 0, null, filalo["REEMBOLSO"].ToString()); if (idInventario == 0) { conexion.DeshacerTransaccion(); MensajeError += "ADVERTENCIA: El registro de inventario no pudo ser creado. Valide Por favor."; correcto = false; break; } else { String activo = "S"; if (ConteLo - lista_Cantidades[i] <= 0) { activo = "N"; } if (_lote.ActualizarAlmLote(lista_lotes[i], Convert.ToInt32(filalo["ID_DOCUMENTO"]), lista_productos[i], Convert.ToInt32(id_bodega_origen), Convert.ToDateTime(filalo["FECHA_REGISTRO"]), Convert.ToInt32(filalo["ENTRADAS"]), Convert.ToInt32(filalo["SALIDAS"]) + lista_Cantidades[i], Convert.ToDecimal(filalo["COSTO"]), filalo["TALLA"].ToString(), activo, conexion) == false) { conexion.DeshacerTransaccion(); correcto = false; MensajeError += "ADVERTENCIA: El registro del lote no pudo ser actualizado. Verifique Por Favor"; break; } else { cantidadRegistrosActualizados++; } } } else { conexion.DeshacerTransaccion(); correcto = false; MensajeError += "ADVERTENCIA: La cantidad de producto (" + lista_productos[i].ToString() + ") solicitada no puede ser sacada del lote (" + lista_lotes[i].ToString() + ") seleccionado, cambie la cantidad o haga varios registros con cantidades posibles."; break; } } } foreach (EquipoTraslado equipo in listaEquiposTraslado) { _lote.MensajeError = null; DataTable tablalo = _lote.ObtenerAlmLotePorId(Convert.ToInt32(equipo.ID_LOTE), conexion); if (_lote.MensajeError != null) { conexion.DeshacerTransaccion(); correcto = false; break; } else { DataRow filalo = tablalo.Rows[0]; ConteLo = Convert.ToInt32(filalo["ENTRADAS"]) - Convert.ToInt32(filalo["SALIDAS"]); if (1 <= ConteLo) { idInventario = AdicionarAlmInventario(Convert.ToInt32(idDOC), Convert.ToInt32(equipo.ID_PRODUCTO), Convert.ToInt32(id_bodega_origen), 1, Convert.ToDecimal(filalo["COSTO"]), fecha, "SALIDA", conexion, Convert.ToInt32(equipo.ID_LOTE), filalo["TALLA"].ToString(), Convert.ToInt32(equipo.ID_EQUIPO), 0, null, filalo["REEMBOLSO"].ToString()); if (idInventario == 0) { conexion.DeshacerTransaccion(); MensajeError += "ADVERTENCIA: El registro de inventario no pudo ser creado. Valide Por favor."; correcto = false; break; } else { String activo = "S"; if (ConteLo - 1 <= 0) { activo = "N"; } if (_lote.ActualizarAlmLote(Convert.ToInt32(equipo.ID_LOTE), Convert.ToInt32(filalo["ID_DOCUMENTO"]), Convert.ToInt32(equipo.ID_PRODUCTO), Convert.ToInt32(filalo["ID_BODEGA"]), Convert.ToDateTime(filalo["FECHA_REGISTRO"]), Convert.ToInt32(filalo["ENTRADAS"]), Convert.ToInt32(filalo["SALIDAS"]) + 1, Convert.ToDecimal(filalo["COSTO"]), filalo["TALLA"].ToString(), activo, conexion) == false) { conexion.DeshacerTransaccion(); correcto = false; MensajeError += "ADVERTENCIA: El registro del lote no pudo ser actualizado. Verifique Por Favor"; break; } else { _lote.MensajeError = null; if (_lote.ActualizarLoteActualDeUnEquipo(equipo.ID_EQUIPO, 0, 0, conexion) == false) { conexion.DeshacerTransaccion(); correcto = false; MensajeError = _lote.MensajeError; break; } else { cantidadRegistrosActualizados++; } } } } else { conexion.DeshacerTransaccion(); correcto = false; MensajeError += "ADVERTENCIA: La cantidad de (equipo(s)) solicitada no puede ser sacada del lote (" + equipo.ID_LOTE.ToString() + ") seleccionado, cambie la cantidad o haga varios registros con cantidades posibles."; break; } } } } if (correcto == true) { conexion.AceptarTransaccion(); } } catch (Exception ex) { conexion.DeshacerTransaccion(); correcto = false; MensajeError = ex.Message; } finally { conexion.Desconectar(); } if (correcto == true) { return idDOC; } else { return 0; } }
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; } }
public Decimal guardarGarantia(int idbodega, int idLote, int idEmpresa, int idProducto, int Cantidad, String idRegional, String idCiudad, String talla, String motivo) { Boolean correcto = true; lote _lote = new lote(Empresa, Usuario); documento _doc = new documento(Empresa, Usuario); Decimal idDoc = 0; Decimal idInventario = 0; int idProveedor = 0; Conexion _dato = new Conexion(Empresa); _dato.IniciarTransaccion(); try { _lote.MensajeError = null; DataTable tablalote = _lote.ObtenerAlmLotePorId(idLote, _dato); if (_lote.MensajeError != null) { _dato.DeshacerTransaccion(); correcto = false; } else { DataRow filalote = tablalote.Rows[0]; Decimal costo = Convert.ToDecimal(filalote["COSTO"]); DateTime fecha = System.DateTime.Today; _doc.MensajeError = null; DataTable tabladoc = _doc.ObtenerAlmRegDocumentoPorId(Convert.ToInt32(filalote["ID_DOCUMENTO"]), _dato); if (_doc.MensajeError != null) { _dato.DeshacerTransaccion(); correcto = false; } else { DataRow filaDoc = tabladoc.Rows[0]; idProveedor = Convert.ToInt32(filaDoc["ID_PROVEEDOR"]); idDoc = _doc.AdicionarAlmDocumentos(0, 0, "GARANTIA", "", "", fecha, new DateTime(), idbodega, 0, 0, "ELABORADO", motivo, _dato, idProveedor, null); if (idDoc <= 0) { _dato.DeshacerTransaccion(); MensajeError += _doc.MensajeError; correcto = false; } else { idInventario = AdicionarAlmInventario(Convert.ToInt32(idDoc), idProducto, idbodega, Cantidad, costo, fecha, "SALIDA", _dato, idLote, talla, 0, 0, null, filalote["REEMBOLSO"].ToString()); if (idInventario <= 0) { _dato.DeshacerTransaccion(); idDoc = 0; correcto = false; } else { Int32 salidas = Convert.ToInt32(filalote["SALIDAS"]); Int32 entradas = Convert.ToInt32(filalote["ENTRADAS"]); salidas = salidas + Cantidad; String ACTIVO = "S"; if (entradas <= salidas) { ACTIVO = "N"; } if (_lote.ActualizarAlmLote(idLote, Convert.ToInt32(filalote["ID_DOCUMENTO"]), idProducto, Convert.ToInt32(idbodega), fecha, entradas, salidas, costo, filalote["TALLA"].ToString(), ACTIVO, _dato) == false) { _dato.DeshacerTransaccion(); correcto = false; MensajeError = _lote.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; } }