using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Extensiones; using System.Data; public partial class Contabilidad_ContabilizacionCompras : ClsPaginas { private DataTable DTmpC { get { return (DataTable)ViewState["DTmpC"]; } set { ViewState["DTmpC"] = value; } } public bool TienePermisoEditar { get { return (bool)ViewState["TienePermisoEditar"]; } set { ViewState["TienePermisoEditar"] = value; } } public bool TienePermisoVerPoliza { get { return (bool)ViewState["TienePermisoVerPoliza"]; } set { ViewState["TienePermisoVerPoliza"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { TienePermisoVerPoliza = false; TienePermisoEditar = false; DdlProveedores.setEsWebService(true); DdlProveedores.Attributes.Add("data-metodo", "getproveedores"); if (UsuarioActual.Empresa.TipoContabilidad == 2 && UsuarioActual.Empresa.UsaContabilidad) { TienePermisoEditar = false; ClsContPAQi ObjCont = new ClsContPAQi(UsuarioActual.Empresa); ObjCont.GetCuentas(-1, "-1", -1); string[] columnas = new string[3] { "Id", "CuentaFormato", "Nombre" }; DTmpC = ObjCont.DtResultados.FiltraParametros("", "", columnas); ObjCont.Dispose(); //DdlProveedores.DataSource = get_GlobalDTCompProveedores(UsuarioActual.CveEmpresa); //DdlProveedores.DataBind(); //CargaDatos(); } DdlPersonal.DataSource = get_GlobalDTRHPersonal(UsuarioActual.CveEmpresa); DdlPersonal.DataBind(); DdlPlantillasPolizas.DataSource = get_GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa); DdlPlantillasPolizas.Items.Insert(0, new ListItem("Todos", "-1")); DdlPlantillasPolizas.DataBind(); txtFechaI.Text = DateTime.Now.FirstDayOfMonth().AddMonths(-1).ToShortDateString(); txtFechaF.Text = DateTime.Now.ToShortDateString(); if (UsuarioActual.CveRol == 1 || UsuarioActual.CveUsuario == 17 || UsuarioActual.CveUsuario == 171 || UsuarioActual.TienePermisoProceso(221)) { TienePermisoEditar = true; TienePermisoVerPoliza = true; } txtFechaI.Text = DateTime.Now.ToShortDateString(); txtFechaF.Text = DateTime.Now.ToShortDateString(); //else //{ // Alert("Este módulo requiere el uso de Contabilidad.", ModExtensiones.TipoMensaje.MsgAdvertencia); // // BtnConsultar.Enabled = false; // BtnContabilizarCompras.Enabled = false; // BtnContabilizarPagos.Enabled = false; // BtnContabilizarAnticipos.Enabled = false; // BtnContabilizarAmortizaciones.Enabled = false; //} } BtnConsultar.Click += new EventHandler(this.BtnConsultar_Click); BtnContabilizarCompras.Click += new EventHandler(this.BtnGuardarCompras_Click); BtnContabilizarPagos.Click += new EventHandler(this.BtnGuardarPagos_Click); BtnContabilizarAnticipos.Click += new EventHandler(this.BtnGuardarAnticipos_Click); BtnContabilizarAmortizaciones.Click += new EventHandler(this.BtnGuardarAmortizaciones_Click); } protected void OnRowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { GridView GvD = e.Row.FCGridView("GvD"); int CvePrePoliza = e.Row.DataKey("CvePrePoliza").ToEntero(); e.Row.Cells[0].ToolTip = CvePrePoliza.ToString(); ClsContabilidad contP = new ClsContabilidad(); if (contP.GetContabilizacionDiarioDetalle(CvePrePoliza, UsuarioActual.CveEmpresa)) { if (contP.DtResultados.Rows.Count > 0) { decimal Abonos = 0; decimal Cargos = 0; decimal Dif = (decimal)0.01; Abonos = Math.Round(contP.DtResultados.SUMD("Abono"), 2); Cargos = Math.Round(contP.DtResultados.SUMD("Cargo"), 2); if (Math.Abs(Cargos - Abonos) >= Dif) { e.Row.FCCheckBox("Chk").Enabled = false; e.Row.FCCheckBox("Chk").ToolTip = string.Format("Cargos y abonos diferentes (${0}-${1}, dif${2})", Cargos, Abonos, Cargos-Abonos); } if (e.Row.DBCampo("IdPoliza").ToEntero() > 0) { e.Row.FCCheckBox("Chk").Enabled = false; e.Row.FCCheckBox("Chk").ToolTip = "Póliza ya contabilizada"; } GvD.DataSource = contP.DtResultados; } else { e.Row.Visible = false; } } if (TienePermisoEditar) { e.Row.FCHyperLink("HplEdicion").Visible = true; } if (UsuarioActual.Empresa.TipoContabilidad == 1) // conta SIG { e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("FolioPoliza").ToEntero() > 0; e.Row.FCCheckBox("Chk").Visible = (e.Row.DBCampo("FolioPoliza") == ""); e.Row.FCHyperLink("HLPoliza").Text = $"Póliza: {e.Row.DBCampo("FolioPoliza")}"; e.Row.FCHyperLink("HLPoliza").NavigateUrl = $"/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={e.Row.DBCampo("CvePrePoliza")}"; } else { if (UsuarioActual.Empresa.TipoContabilidad == 2) // conta Contpaq { e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("IdPoliza").ToEntero() > 0; e.Row.FCHyperLink("HLPoliza").NavigateUrl = $"/Contabilidad/RegPoliza.aspx?IdPoliza={e.Row.DBCampo("IdPoliza")}"; } } contP.Dispose(); GvD.DataBind(); if (e.Row.DBCampo("Moneda") == "USD" && e.Row.FCLinkButton("LBActualizarTC") != null) { e.Row.FCLinkButton("LBActualizarTC").Visible = true; } } } private void Contabilizar(int CvePrepoliza, DateTime Fecha, string Concepto, ClsContabilidad Obj) { if (Obj.ContabilizarPrePoliza(CvePrepoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, Fecha, Concepto)) { } } private void BtnGuardarCompras_Click(object sender, EventArgs e) { ClsContabilidad ObjMov = new ClsContabilidad(); foreach (GridViewRow row in GvPrePolizaCompras.Rows) { CheckBox chk = row.FCCheckBox("Chk"); TextBox txtFecha = row.FCTextBox("TxtFechaCompras"); TextBox txtConcepto = row.FCTextBox("TxtConceptoCompras"); if (chk != null && chk.Checked) { DateTime Fecha = txtFecha.Text.ToDate(); int CvePrepoliza = GvPrePolizaCompras.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero(); string Concepto = txtConcepto.Text; Contabilizar(CvePrepoliza, Fecha, Concepto, ObjMov); } } ObjMov.Dispose(); Alert("Se Contabilizaron Correctamente los Siguientes Folios:
" + ObjMov.AlertaMensaje.ToString(), ModExtensiones.TipoMensaje.MsgInformacion); CargaDatos(); } private void BtnGuardarPagos_Click(object sender, EventArgs e) { ClsContabilidad ObjMov = new ClsContabilidad(); foreach (GridViewRow row in GvPrePolizaPagos.Rows) { CheckBox chk = row.FCCheckBox("Chk"); TextBox txtFecha = row.FCTextBox("TxtFechaPagos"); TextBox txtConcepto = row.FCTextBox("TxtConceptoPagos"); if (chk != null && chk.Checked) { DateTime Fecha = txtFecha.Text.ToDate(); int CvePrepoliza = GvPrePolizaPagos.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero(); string Concepto = txtConcepto.Text; Contabilizar(CvePrepoliza, Fecha, Concepto, ObjMov); } } ObjMov.Dispose(); Alert("Se Contabilizaron Correctamente los Siguientes Folios:
" + ObjMov.AlertaMensaje.ToString(), ModExtensiones.TipoMensaje.MsgInformacion); CargaDatos(); } private void BtnGuardarAnticipos_Click(object sender, EventArgs e) { ClsContabilidad ObjMov = new ClsContabilidad(); foreach (GridViewRow row in GvPrePolizaAnticipos.Rows) { CheckBox chk = row.FCCheckBox("Chk"); TextBox txtFecha = row.FCTextBox("TxtFechaAnticipos"); TextBox txtConcepto = row.FCTextBox("TxtConceptoAnticipos"); if (chk != null && chk.Checked) { DateTime Fecha = txtFecha.Text.ToDate(); int CvePrepoliza = GvPrePolizaAnticipos.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero(); string Concepto = txtConcepto.Text; Contabilizar(CvePrepoliza, Fecha, Concepto, ObjMov); } } ObjMov.Dispose(); Alert("Se Contabilizaron Correctamente los Siguientes Folios:
" + ObjMov.AlertaMensaje.ToString(), ModExtensiones.TipoMensaje.MsgInformacion); CargaDatos(); } private void BtnGuardarAmortizaciones_Click(object sender, EventArgs e) { ClsContabilidad ObjMov = new ClsContabilidad(); foreach (GridViewRow row in GvPrePolizaAmortizaciones.Rows) { CheckBox chk = row.FCCheckBox("Chk"); TextBox txtFecha = row.FCTextBox("TxtFechaAmortizaciones"); TextBox txtConcepto = row.FCTextBox("TxtConceptoAmortizaciones"); if (chk != null && chk.Checked) { DateTime Fecha = txtFecha.Text.ToDate(); int CvePrepoliza = GvPrePolizaAmortizaciones.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero(); string Concepto = txtConcepto.Text; Contabilizar(CvePrepoliza, Fecha, Concepto, ObjMov); } } ObjMov.Dispose(); Alert("Se Contabilizaron Correctamente los Siguientes Folios:
" + ObjMov.AlertaMensaje.ToString(), ModExtensiones.TipoMensaje.MsgInformacion); CargaDatos(); } protected void BtnConsultar_Click(object sender, EventArgs e) { CargaDatos(); } private void CargaDatos() { DateTime FechaI = txtFechaI.Text.ToDate(); DateTime FechaF = txtFechaF.Text.ToDate(); var EstatusContabilizacion = DdlEstatusContabilizacion.SelectedValue.ToEntero(); int CveProveedor = -1; if (DdlProveedores.SelectedValue.ToEntero() > 0) CveProveedor = DdlProveedores.SelectedValue.ToEntero(); ClsContabilidad cont = new ClsContabilidad(); // Cargamos las Compras if (cont.GetContabilizacionDiario(UsuarioActual.CveEmpresa, 1, FechaI, FechaF, CveProveedor, DdlPersonal.SelectedValue.ToEntero(), DdlTipoProveedor.SelectedValue.ToEntero(), DdlMoneda.SelectedValue.ToEntero(), DdlPlantillasPolizas.SelectedValue.ToEntero(), EstatusContabilizacion)) { GvPrePolizaCompras.DataSource = cont.DtResultados; GvPrePolizaCompras.DataBind(); } // Cargamos los pagos if (cont.GetContabilizacionDiario(UsuarioActual.CveEmpresa, 2, FechaI, FechaF, CveProveedor, DdlPersonal.SelectedValue.ToEntero(), DdlTipoProveedor.SelectedValue.ToEntero(), DdlMoneda.SelectedValue.ToEntero(), DdlPlantillasPolizas.SelectedValue.ToEntero(), EstatusContabilizacion)) { GvPrePolizaPagos.DataSource = cont.DtResultados; GvPrePolizaPagos.DataBind(); } // Cargamos las amortizaciones if (cont.GetContabilizacionDiario(UsuarioActual.CveEmpresa, 101, FechaI, FechaF, CveProveedor, DdlPersonal.SelectedValue.ToEntero(), DdlTipoProveedor.SelectedValue.ToEntero(), DdlMoneda.SelectedValue.ToEntero(), DdlPlantillasPolizas.SelectedValue.ToEntero(), EstatusContabilizacion)) { GvPrePolizaAmortizaciones.DataSource = cont.DtResultados; GvPrePolizaAmortizaciones.DataBind(); } cont.Dispose(); UpGvCompras.Update(); UpGvPagos.Update(); UpGvAnticipos.Update(); UpGvAmortizaciones.Update(); } protected void GvD_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { int cuenta = e.Row.DataKey("IdCtaContable").ToString().ToEntero(); int cvecuenta = e.Row.DataKey("CveCuenta").ToString().ToEntero(); int CveConcepto = e.Row.DBCampo("CveConceptoContable").ToEntero(); if (CveConcepto.Contiene(5, 6, 14, 16, 17, 19, 206, 22, 23, 25, 26, 18, 60, 183, 184, 185, 186 ,205, 240, 243, 244, 248, 249,15,22,248,249,237,312)) { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DBCampo("CveCompra")); } if (CveConcepto.Contiene(30, 204)) { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")); } if (CveConcepto.Contiene(2, 4, 13, 61, 38, 39)) { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DBCampo("CveVenta")); } if (CveConcepto.Contiene(28, 29)) { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/RH/Personal.aspx?CvePersonal={0}", e.Row.DBCampo("CvePersonal")); } if (CveConcepto.Contiene(68)) { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen")); } if (CveConcepto.Contiene(176,177,228,229,232,233)) { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/OC/OC.aspx?OC={0}", e.Row.DBCampo("CveOC")); } if (UsuarioActual.Empresa.TipoContabilidad == 1) // conta SIG { if (cvecuenta == 0) { e.Row.Cells[0].ForeColor = System.Drawing.Color.Red; ((GridViewRow)((GridView)e.Row.NamingContainer).BindingContainer).FCCheckBox("Chk").Visible = false; } } else { if (UsuarioActual.Empresa.TipoContabilidad == 2) // conta Contpaq { if (cuenta > 0) { DataRow dr = DTmpC.FiltroPrimero(String.Format("Id = {0}", cuenta)); if (dr != null) e.Row.Cells[3].Text = string.Format("{0}
{1}", dr["CuentaFormato"], dr["Nombre"]); } else { e.Row.Cells[0].ForeColor = System.Drawing.Color.Red; ((GridViewRow)((GridView)e.Row.NamingContainer).BindingContainer).FCCheckBox("Chk").Enabled = false; ((GridViewRow)((GridView)e.Row.NamingContainer).BindingContainer).FCCheckBox("Chk").ToolTip = "Hay conceptos sin cuenta asignada"; } } } if (Convert.ToDecimal(e.Row.DataKey("Cargo").ToString()) == 0) e.Row.Cells[4].Text = ""; if (Convert.ToDecimal(e.Row.DataKey("Abono").ToString()) == 0) e.Row.Cells[5].Text = ""; } } protected void LnkSimplificar_Click(object sender, EventArgs e) { ClsContabilidad ObjMov = new ClsContabilidad(); LinkButton btn = (LinkButton)sender; GridViewRow row = (GridViewRow)btn.NamingContainer; int index = Convert.ToInt32(row.RowIndex); int CvePrePoliza = GvPrePolizaPagos.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero(); if (ObjMov.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa)) { Alert("Se ha simplificado la poliza correctamente", ModExtensiones.TipoMensaje.MsgInformacion); } else { Alert("Ocurrió un error al simplificar la póliza", ModExtensiones.TipoMensaje.MsgError); } ObjMov.Dispose(); CargaDatos(); } protected void LnkSimplificarCompra_Click(object sender, EventArgs e) { ClsContabilidad ObjMov = new ClsContabilidad(); LinkButton btn = (LinkButton)sender; GridViewRow row = (GridViewRow)btn.NamingContainer; int index = Convert.ToInt32(row.RowIndex); int CvePrePoliza = GvPrePolizaCompras.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero(); if (ObjMov.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa)) { Alert("Se ha simplificado la poliza correctamente", ModExtensiones.TipoMensaje.MsgInformacion); } else { Alert("Ocurrió un error al simplificar la póliza", ModExtensiones.TipoMensaje.MsgError); } ObjMov.Dispose(); CargaDatos(); } }