protected void btnAceptarAgregar_Click(object sender, EventArgs e) { try { NegocioPF.Factura oFactura = (Factura)Session["oFactura"]; if (oFactura.Existe()) { MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgFactYaRegistrada")); return; } oFactura.Moneda = cboMoneda.SelectedValue; //Valida si existe el Emisor en el catálogo de proveedores NegocioPF.Proveedor oProveedor = new Proveedor(); oProveedor.Cargar(txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" "))); if (oProveedor.Nombre == "" || oProveedor.Nombre == null) { throw new Exception("MsgEmisorInexistente"); } //Valida que el receptor corresponda a la sociedad seleccionada NegocioPF.Sociedad oSociedad = new NegocioPF.Sociedad(cboSociedades.SelectedValue); oSociedad.Cargar(); if (oSociedad.RFC != txtReceptor.Text.Substring(0, txtReceptor.Text.IndexOf(" "))) { throw new Exception("MsgErrFactNoCorrSociedad"); } //Valida que la sociedad esté activa para el proveedor bool existe = false; foreach (string sociedad in oProveedor.Sociedades) { if (sociedad == cboSociedades.SelectedValue) { existe = true; } } if (!existe) { throw new Exception("MsgSocNoActProv"); } //Valida la fecha de la factura NegocioPF.Configuracion oConfig = new NegocioPF.Configuracion(); oConfig.Cargar(); DateTime dFechaMinima = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); dFechaMinima = dFechaMinima.AddMonths(oConfig.MesesAtras * -1); DateTime dFechaMaxima = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); dFechaMaxima = dFechaMaxima.AddMonths(oConfig.MesesAdelante); DateTime dFecha = new DateTime(Convert.ToInt32(txtFecha.Text.Substring(0, 4)), Convert.ToInt32(txtFecha.Text.Substring(5, 2)), Convert.ToInt32(txtFecha.Text.Substring(8, 2))); if (dFecha < dFechaMinima) { throw new Exception("MsgErrFactMuyAtrasada"); } if (dFecha > dFechaMaxima) { throw new Exception("MsgErrFactFecMuyAdelantada"); } if (oProveedor.RFC != oFactura.Emisor) { throw new Exception("MsgErrPedDifProv"); } //Establece el tipo de factura oFactura.TipoFactura = "NFI"; NegocioPF.Facturas oFacturas = (NegocioPF.Facturas)Session["oFacturas"]; DataRow r = oFacturas.Datos.Tables[0].NewRow(); r["id_sociedad"] = cboSociedades.SelectedValue; r["folio"] = 0; r["UUID"] = txtUUID.Text; r["folioFact"] = txtFactura.Text; r["emisor"] = txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" ")); r["receptor"] = txtReceptor.Text.Substring(0, txtReceptor.Text.IndexOf(" ")); r["ordenCompra"] = ""; r["fecha"] = txtFecha.Text; r["importe"] = txtImporte.Text; r["id_moneda"] = cboMoneda.SelectedValue; r["pdf"] = Session["pdf"].ToString(); r["xml"] = Session["xml"].ToString(); oFacturas.Datos.Tables[0].Rows.Add(r); oFacturas.Relacion.Add(oFactura); Session["oFacturas"] = oFacturas; grdFacturas.DataSource = oFacturas.Datos; grdFacturas.DataBind(); oViewer.Visible = false; divDetalle.Visible = false; divFacturas.Visible = true; btnAceptar.Visible = (oFacturas.Datos.Tables[0].Rows.Count > 0); btnCancelar.Visible = (oFacturas.Datos.Tables[0].Rows.Count > 0); divImportar.Visible = true; //ScriptManager.RegisterStartupScript(this, typeof(Page), "confirm", "<script>confirmation();</script>", false); } catch (Exception ex) { if (ex.Message.Substring(0, 3) == "Msg") { MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message)); } else { MessageBox(sender, e, ex.Message); } } }
protected void btnAceptarAgregar_Click(object sender, EventArgs e) { bool existe = false; try { if (txtMaterial.Text != "") { btnAceptarItem_Click(null, null); } NegocioPF.Factura oFactura = (Factura)Session["oFactura"]; NegocioPF.Proveedor oProveedor = new Proveedor(((Usuario)Session["oUsuario"]).Id); oProveedor.Cargar(); //Recupera el emisor string emisor; if (txtEmisor.Text.IndexOf(" ") >= 0) { emisor = txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" ")); } else { emisor = txtEmisor.Text.Trim(); } //Si es un proveedor, valida si puede subir la factura, propia o de un tercero if (oProveedor.RFC != "") { if (oProveedor.RFC != emisor) { if (oProveedor.Intermediario == false) { throw new Exception("MsgErrFacDifProv"); } } } //Carga al emisor oProveedor.Cargar(emisor); //Valida que el proveedor exista if (oProveedor.RFC == "") { throw new Exception("MsgProvInexistente"); } else { txtEmisor.Text = oProveedor.RFC + " " + oProveedor.Nombre; } //Valida que el Emisor pueda facturar en la sociedad seleccionada existe = false; foreach (string sociedad in oProveedor.Sociedades) { if (sociedad == cboSociedades.SelectedValue) { existe = true; } } if (!existe) { throw new Exception("MsgSocNoActProv"); } //Establece el emisor en la factura oFactura.Emisor = emisor; //Valida si la factura ya fue registrada oFactura.UUID = txtFactura.Text; if (oFactura.Existe()) { MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgFactYaRegistrada")); return; } //Valida la fecha de la factura NegocioPF.Configuracion oConfig = new NegocioPF.Configuracion(); oConfig.Cargar(); DateTime dFechaMinima = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); dFechaMinima = dFechaMinima.AddMonths(oConfig.MesesAtras * -1); DateTime dFechaMaxima = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); dFechaMaxima = dFechaMaxima.AddMonths(oConfig.MesesAdelante); DateTime dFecha = NegocioPF.Rutinas.ConvierteTextToFecha(txtFecha.Text); if (dFecha < dFechaMinima) { throw new Exception("MsgErrFactMuyAtrasada"); } if (dFecha > dFechaMaxima) { throw new Exception("MsgErrFactFecMuyAdelantada"); } //Establece los datos de la factura oFactura.Sociedad = cboSociedades.SelectedValue; oFactura.NumFactura = txtFactura.Text; oFactura.Fecha = NegocioPF.Rutinas.ConvierteTextToFecha(txtFecha.Text); oFactura.Importe = Convert.ToDouble(txtImpSinIva.Text); oFactura.Impuestos = Convert.ToDouble(txtImpuestos.Text); oFactura.Moneda = cboMoneda.SelectedValue; oFactura.TipoFactura = "EFI"; //Determina el indicador de impuestos if (oFactura.Impuestos > 0) { oFactura.Tasa = Convert.ToInt32((Convert.ToDouble(txtImpuestos.Text) / Convert.ToDouble(txtImpSinIva.Text)) * 100); NegocioPF.Indicador oIndicador = new Indicador(); oIndicador.Buscar(oFactura.Tasa); if (oIndicador.ID != "") { oFactura.IndImpuestos = oIndicador.ID; } else { throw new Exception("MsgErrImpuestos"); } } //Agrega la factura a la colección de facturas NegocioPF.Facturas oFacturas = (NegocioPF.Facturas)Session["oFacturas"]; DataRow r = oFacturas.Datos.Tables[0].NewRow(); r["id_sociedad"] = cboSociedades.SelectedValue; r["folio"] = 0; r["UUID"] = txtFactura.Text; r["folioFact"] = txtFactura.Text; r["emisor"] = txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" ")); r["receptor"] = txtReceptor.Text.Substring(0, txtReceptor.Text.IndexOf(" ")); r["ordenCompra"] = ""; r["fecha"] = NegocioPF.Rutinas.ConvierteTextToFecha(txtFecha.Text); r["importe"] = txtTotal.Text; r["id_moneda"] = cboMoneda.SelectedValue; r["pdf"] = Session["pdf"].ToString(); oFacturas.Datos.Tables[0].Rows.Add(r); oFacturas.Relacion.Add(oFactura); Session["oFacturas"] = oFacturas; grdFacturas.DataSource = oFacturas.Datos; grdFacturas.DataBind(); oViewer.Visible = false; divDetalle.Visible = false; divFacturas.Visible = true; btnAceptar.Visible = (oFacturas.Datos.Tables[0].Rows.Count > 0); btnCancelar.Visible = (oFacturas.Datos.Tables[0].Rows.Count > 0); divImportar.Visible = true; //ScriptManager.RegisterStartupScript(this, typeof(Page), "confirm", "<script>confirmation();</script>", false); } catch (Exception ex) { if (ex.Message.Substring(0, 3) == "Msg") { MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message)); } else { MessageBox(sender, e, ex.Message); } } }