private static void AlmacenaDetalleSolicitud(EN.Abastos.SolicitudMateriales solicitud) { foreach (DetalleSolicitudMateriales registro in solicitud.articulos) { AlmacenaRegistroDetalleSolicitud(registro, solicitud); } }
private static void AlmacenaSoportesSolicitud(EN.Abastos.SolicitudMateriales solicitud) { // EliminaSoportesSolicitud(solicitud.id); foreach (SoporteElectronicoSolicitudMateriales registro in solicitud.soportes) { AlmacenaRegistroSoporteSolicitud(registro, solicitud); } }
public static void InsertaSolicitud(EN.Abastos.SolicitudMateriales solicitud) { CASCO.DAO.DB.DoTransactions(delegate { AlmacenaEncabezadoSolicitud(solicitud); AlmacenaDetalleSolicitud(solicitud); AlmacenaSoportesSolicitud(solicitud); }); }
private static void SetSolicitudDeMaterialesSoportes(EN.Abastos.SolicitudMateriales req) { List <SoporteElectronicoSolicitudMateriales> lr = new List <SoporteElectronicoSolicitudMateriales>(); string sqlstr = "[Abastos].[SolicitudDeMaterialesSoportes_Consulta]"; Hashtable m_params = new Hashtable(); m_params.Add("@SolicitudDeMaterial_ID", req.id); m_params.Add("@Division_ID", req.Division.id); m_params.Add("@Empresa_ID", req.Empresa.id); m_params.Add("@Departamento_ID", req.Departamento.id); DataTable dt = DBL.ExecuteSelectSP(m_params, sqlstr, Utils.CadenaConexionSICAS, Utils.ConexionTimeOut).Tables[0]; req.soportes = ObtieneListaSoportes(dt); }
private static void AlmacenaEncabezadoSolicitud(EN.Abastos.SolicitudMateriales sol) { string sql = "[Abastos].[SolicitudDeMaterialesEncabezado_Inserta]"; Hashtable m_params = new Hashtable(); m_params.Add("@SolicitudDeMaterial_ID", sol.id); m_params.Add("@Usuario_ID", sol.Usuario); m_params.Add("@Division_ID", sol.Division.id); m_params.Add("@Empresa_ID", sol.Empresa.id); m_params.Add("@Departamento_ID", sol.Departamento.id); m_params.Add("@Almacen_ID", sol.Almacen.id); m_params.Add("@EstatusSolicitud_ID", sol.Estatus.id); m_params.Add("@Moneda", sol.Moneda); sol.id = (int)DB.ExecuteCommandSP_With_Return(sql, m_params); }
public static void SetSolicitudDeMaterialesDetalle(EN.Abastos.SolicitudMateriales req) { List <DetalleSolicitudMateriales> lr = new List <DetalleSolicitudMateriales>(); string sqlstr = "[Abastos].[SolicitudDeMaterialesDetalle_Consulta]"; Hashtable m_params = new Hashtable(); m_params.Add("@SolicitudDeMaterial_ID", req.id); DataTable dt = DBL.ExecuteSelectSP(m_params, sqlstr, Utils.CadenaConexionSICAS, Utils.ConexionTimeOut).Tables[0]; foreach (DataRow dr in dt.Rows) { DetalleSolicitudMateriales r = new DetalleSolicitudMateriales(); r.id = Convert.ToInt32(dr["SolicitudDeMaterialDetalle_ID"]); r.cantidad = Convert.ToInt32(dr["Cantidad"]); r.item.id = Convert.ToInt32(dr["Servicio_ID"]); r.item.aux = Convert.ToDouble(dr["CPRECIOCOMPRA"]).ToString("C2"); r.item.descripcion = dr["CNOMBREPRODUCTO"].ToString(); r.item.preciocompra = Convert.ToDouble(dr["CPRECIOCOMPRA"]); r.item.CIDPRODUCTO = Convert.ToInt32(dr["CIDPRODUCTO"]); r.item.CIDPROVEEDOR = Convert.ToInt32(dr["CIDPROVEEDOR"]); r.item.CCODIGOPRODUCTO = Convert.ToInt32(dr["CCODIGOPRODUCTO"]); if (!Convert.IsDBNull(dr["CIDDOCUMENTO"])) { r.CIDDOCUMENTO = Convert.ToInt32(dr["CIDDOCUMENTO"]); } if (!Convert.IsDBNull(dr["FOLIODOCUMENTO"])) { r.FolioDocumento = dr["FOLIODOCUMENTO"].ToString(); } if (!Convert.IsDBNull(dr["SERIEDOCUMENTO"])) { r.SerieDocumento = dr["SERIEDOCUMENTO"].ToString(); } lr.Add(r); } req.articulos = lr; }
public static List <EN.Abastos.SolicitudMateriales> GetSolicitudDeMateriales(SolicitudMaterialesConsulta sol) { List <EN.Abastos.SolicitudMateriales> lr = new List <EN.Abastos.SolicitudMateriales>(); string sqlstr = "[Abastos].[SolicitudDeMaterialesEncabezado_Consulta]"; Hashtable m_params = new Hashtable(); if (sol.id > 0) { m_params.Add("@Solicitud_ID", sol.id); } if (sol.Division.id > 0) { m_params.Add("@Division_ID", sol.Division.id); } if (sol.Empresa.id > 0) { m_params.Add("@Empresa_ID", sol.Empresa.id); } if (sol.Departamento.id > 0) { m_params.Add("@Departamento_ID", sol.Departamento.id); } if (sol.Almacen.id > 0) { m_params.Add("@Almacen_ID", sol.Almacen.id); } if (sol.Estatus.id > 0) { m_params.Add("@EstatusSolicitud_ID", sol.Estatus.id); } m_params.Add("@FechaDesde", DateTime.ParseExact(sol.FechaDesde.ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture)); m_params.Add("@FechaHasta", DateTime.ParseExact(sol.FechaHasta.ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture)); DataTable dt = DBL.ExecuteSelectSP(m_params, sqlstr, Utils.CadenaConexionSICAS, Utils.ConexionTimeOut).Tables[0]; foreach (DataRow dr in dt.Rows) { EN.Abastos.SolicitudMateriales r = new EN.Abastos.SolicitudMateriales(); r.id = Convert.ToInt32(dr["SolicitudDeMaterial_ID"]); r.Division.id = Convert.ToInt32(dr["Division_ID"]); r.Division.descripcion = dr["Division"].ToString(); r.Empresa.id = Convert.ToInt32(dr["Empresa_ID"]); r.Empresa.descripcion = dr["Empresa"].ToString(); r.Departamento.id = Convert.ToInt32(dr["Departamento_ID"]); r.Departamento.descripcion = dr["Departamento"].ToString(); r.Almacen.id = Convert.ToInt32(dr["Almacen_ID"]); r.Almacen.descripcion = dr["Almacen"].ToString(); r.Estatus.id = Convert.ToInt32(dr["EstatusSolicitud_ID"]); r.Estatus.descripcion = dr["EstatusSolicitud"].ToString(); r.FechaElabora = Convert.ToDateTime(dr["FechaElaboracion"]).ToString("dd/MM/yyyy HH:mm"); if (dr["Comentarios"] != DBNull.Value) { r.Comentarios = dr["Comentarios"].ToString(); } if (dr["BaseDeDatos"] != DBNull.Value) { r.BaseDeDatos = dr["BaseDeDatos"].ToString(); } r.ConceptoDocumento = dr["ConceptoDocumento"].ToString(); r.Moneda = dr["Moneda"].ToString(); r.Usuario = dr["Usuario_ID"].ToString(); SetSolicitudDeMaterialesDetalle(r); SetSolicitudDeMaterialesSoportes(r); lr.Add(r); } return(lr); }
private static void AlmacenaRegistroDetalleSolicitud(DetalleSolicitudMateriales servicio, EN.Abastos.SolicitudMateriales requisicion) { string sql = "[Abastos].[SolicitudDeMaterialesDetalle_Inserta]"; Hashtable m_params = new Hashtable(); m_params.Add("@SolicitudDeMaterialDetalle_ID", servicio.id); m_params.Add("@SolicitudDeMaterial_ID", requisicion.id); m_params.Add("@Division_ID", requisicion.Division.id); m_params.Add("@Empresa_ID", requisicion.Empresa.id); m_params.Add("@Departamento_ID", requisicion.Departamento.id); m_params.Add("@Servicio_ID", servicio.item.id); m_params.Add("@Cantidad", servicio.cantidad); m_params.Add("@CPRECIOCOMPRA", servicio.item.aux); m_params.Add("@CIDPROVEEDOR", servicio.item.CIDPROVEEDOR); m_params.Add("@CIDDOCUMENTO", servicio.CIDDOCUMENTO); m_params.Add("@FolioDocumento", servicio.FolioDocumento); m_params.Add("@Serie", servicio.SerieDocumento); servicio.id = (int)DB.ExecuteCommandSP_With_Return(sql, m_params); }
private static void AlmacenaRegistroSoporteSolicitud(SoporteElectronicoSolicitudMateriales registro, EN.Abastos.SolicitudMateriales requisicion) { string sql = "[Abastos].[SolicitudDeMaterialesSoportes_Inserta]"; Hashtable m_params = new Hashtable(); m_params.Add("@SolicitudSoporteE_ID", registro.id); m_params.Add("@SolicitudDeMaterial_ID", requisicion.id); m_params.Add("@SoporteE_ID", registro.soporte.id); m_params.Add("@Req_Para_Autorizacion", registro.soporte.Req_Para_Autorizacion); m_params.Add("@EstatusSoporteE_ID", registro.Estatus); m_params.Add("@Orden", registro.Orden); m_params.Add("@RutaDocto", registro.Ruta_Documento); registro.id = (int)DB.ExecuteCommandSP_With_Return(sql, m_params); }
public static void GeneraOrdenesDeCompraPendientes() { string fhoy = DateTime.Now.ToShortDateString(); SolicitudMaterialesConsulta sol = new SolicitudMaterialesConsulta(); sol.Estatus.id = 6; // 6 = Por generar orden de compra sol.FechaDesde = Convert.ToDateTime(fhoy); sol.FechaHasta = Convert.ToDateTime(fhoy); List <EN.Abastos.SolicitudMateriales> ls = GetSolicitudDeMateriales(sol); if (ls != null && ls.Count > 0) { SDK.Inicializa(); bool Siguiente = false; foreach (EN.Abastos.SolicitudMateriales solicitud in ls) { if (SDK.AbreEmpresa(solicitud.BaseDeDatos)) { List <EN.Abastos.SolicitudMateriales> ls_aux = new List <EN.Abastos.SolicitudMateriales>(); int cidprov = 0; EN.Abastos.SolicitudMateriales saux = null; //Verifica la cantidad de ordenes de compra a generar // por proveedor de acuerdo a los artículos elegidos. foreach (DetalleSolicitudMateriales ds in solicitud.articulos) { if (cidprov != ds.item.CIDPROVEEDOR) { cidprov = ds.item.CIDPROVEEDOR; saux = new EN.Abastos.SolicitudMateriales(); saux = (EN.Abastos.SolicitudMateriales)solicitud.Clone(); saux.articulos = new List <DetalleSolicitudMateriales>(); saux.articulos.Add(ds); ls_aux.Add(saux); } else { saux.articulos.Add(ds); } } //Por cada diferente proveedor en la misma solicitud // se genera una orden de compra en el sistema comercial foreach (EN.Abastos.SolicitudMateriales sol_aux in ls_aux) { Siguiente = false; try { Documento documento = new Documento(); string codProveedor = documento.BuscaProveedorPorId(solicitud.CIDProveedor); //339 int idmoneda = documento.ObtieneIdMoneda(solicitud.Moneda); double importe = solicitud.total; string sconcepto = documento.ObtieneCodigoConcepto(solicitud.ConceptoDocumento); if (sconcepto.Trim().Length > 0) { string folio = documento.ObtieneFolioSiguiente(sconcepto); solicitud.FolioDocumento = folio; solicitud.SerieDocumento = ""; tDocumento docto = new tDocumento(); docto.aCodConcepto = sconcepto; docto.aSerie = ""; docto.aFecha = DateTime.Now.ToString("MM/dd/yyyy"); docto.aFolio = Convert.ToDouble(documento.Folio); docto.aCodigoCteProv = codProveedor; docto.aNumMoneda = idmoneda; docto.aImporte = importe; docto.aDescuentoDoc1 = 0; docto.aDescuentoDoc2 = 0; docto.aSistemaOrigen = 0; docto.aAfecta = 0; docto.aReferencia = ""; bool bCreado = false; try { bCreado = documento.AltaDeDocumento(docto); } catch (Exception ex) { throw ex; } if (bCreado) { //Inserta información adicional bCreado = documento.SetDatoDocumento("CTEXTOEXTRA1", new StringBuilder(solicitud.Usuario)); } if (bCreado) { int c = 1; foreach (DetalleSolicitudMateriales fila in solicitud.articulos) { tMovimiento tm = new tMovimiento(); tm.aConsecutivo = c; tm.aCodProdSer = fila.item.CCODIGOPRODUCTO.ToString(); tm.aCosto = 0; tm.aPrecio = fila.item.preciocompra; tm.aReferencia = ""; tm.aCodClasificacion = ""; tm.aCodAlmacen = "1"; tm.aUnidades = fila.cantidad; bCreado = false; try { Int32 idMov = documento.AltaMovimiento(tm); if (idMov > 0) { documento.SetDatoMovimiento("CIMPUESTO1", new StringBuilder(((fila.item.preciocompra * fila.cantidad) * 0.16).ToString())); documento.SetDatoMovimiento("CPORCENTAJEIMPUESTO1", new StringBuilder("16")); fila.CIDMOVIMIENTO = idMov; fila.FolioDocumento = folio; fila.SerieDocumento = ""; } else { throw new Exception(string.Format("Revise el log {0} en el visor de eventos del sistema", EN.General.Utils.EventLog)); } } catch (Exception ex) { throw ex; } c++; } } } else { throw new Exception("No se econtró el codigo del concepto " + solicitud.ConceptoDocumento); } InsertaSolicitud(solicitud); //Actualiza información de la solicitud en DB Siguiente = true; } catch (Exception ex) { EN.General.EventLog.WriteError(ex.ToString()); Siguiente = false; break; } } if (SDK.EmpresaAbierta) { SDK.CerrarEmpresa(solicitud.BaseDeDatos); } if (!Siguiente) { break; } } else { EN.General.EventLog.WriteError("Error al procesar la solicitud con id: " + solicitud.id); EN.General.EventLog.WriteError("Error al abrir Base de Datos " + solicitud.BaseDeDatos); } ActualizaEstatus("SICAS", solicitud.id, 4); } SDK.TerminaSDK(); } }