Example #1
0
 private void BtnFacturar_Click(object sender, EventArgs e)
 {
     try
     {
         string msg = this.ValidarReserva();
         if (msg != "")
         {
             SISTEMA.MENSAJES.FrmAviso FrmAvi = new LFVBNewTPV.SISTEMA.MENSAJES.FrmAviso(msg);
         }
         else
         {
             //Guardamos los datos sensibles
             if (this.CmbCodEsre.SelectedValue != null && this.CmbCodEsre.SelectedValue.ToString() != this.reserva.datos["COD_ESRE"].ToString())
             {
                 this.reserva.datos["COD_ESRE"]   = this.CmbCodEsre.SelectedValue.ToString();
                 this.reserva.datos["FECHA_ESRE"] = DateTime.Now;
             }
             else if (this.CmbCodEsre.SelectedValue == null)
             {
                 this.reserva.datos["COD_ESRE"]   = "GRB";
                 this.reserva.datos["FECHA_ESRE"] = DateTime.Now;
             }
             bool      ExistenExistencias = true;
             Productos lstp = Productos.ObtenInstancia();
             foreach (DataRow d in this.reserva.lineas.Rows)
             {
                 Int64 idprod;
                 Int64.TryParse(d["ID_ELEM_PROD"].ToString(), out idprod);
                 if (idprod > 0)
                 {
                     Producto p = lstp.Buscar(idprod);
                     if (p != null)
                     {
                         double existencias = p.ObtenStock();
                         double pedidas     = 0;
                         Double.TryParse(d["CANTIDAD_PROD"].ToString(), out pedidas);
                         if (pedidas > existencias)
                         {
                             ExistenExistencias = false;
                         }
                     }
                 }
             }
             if (ExistenExistencias)
             {
                 //Puedo facturar
                 TPV.FrmAuxiliares.FrmTipoDocumento FrmTipo = new TPV.FrmAuxiliares.FrmTipoDocumento();
                 FrmTipo.ShowDialog();
                 if (FrmTipo.TipoSel.Trim() != "")
                 {
                     Documentos auxdocs = Documentos.ObtenInstancia();
                     Documento  nuevo   = auxdocs.Nuevo();
                     //Relleno los datos del nuevo documento
                     nuevo.datos["ID_ELEM_PERS"] = this.reserva.datos["ID_ELEM_PERS"];
                     foreach (DataRow d in this.reserva.lineas.Rows)
                     {
                         DataRow l = nuevo.lineas.NewRow();
                         l["ID_ELEM_PROD"]  = d["ID_ELEM_PROD"];
                         l["CANTIDAD_LIDO"] = d["CANTIDAD_PROD"];
                         l["TEXTO_LIDO"]    = d["DESCRIPCION_PROD"];
                         l["PVB_LIDO"]      = d["PVB_LIRE"];
                         l["PORC_IVA_LIDO"] = d["PORC_IVA_LIRE"];
                         l["PVP_LIDO"]      = d["PVP_LIRE"];
                         double cant = 0;
                         double pvp  = 0;
                         double.TryParse(l["CANTIDAD_LIDO"].ToString(), out cant);
                         double.TryParse(l["PVP_LIDO"].ToString(), out pvp);
                         l["TOTAL_LIDO"] = cant * pvp;
                         nuevo.lineas.Rows.Add(l);
                     }
                     DataRow ln = nuevo.lineas.NewRow();
                     ln["ID_ELEM_PROD"]  = DBNull.Value;
                     ln["CANTIDAD_LIDO"] = 0;
                     ln["TEXTO_LIDO"]    = "Reserva nÂș " + this.reserva.datos["ID_ELEM"].ToString();
                     ln["PVB_LIDO"]      = 0;
                     ln["PORC_IVA_LIDO"] = 0;
                     ln["PVP_LIDO"]      = 0;
                     ln["TOTAL_LIDO"]    = 0;
                     nuevo.lineas.Rows.Add(ln);
                     TPV.FrmDocumento FrmDocu = new TPV.FrmDocumento(nuevo, FrmTipo.TipoSel.Trim());
                     FrmDocu.reserva = this.reserva;
                     FrmDocu.ShowDialog();
                     this.reserva = this.reserva.parent.Buscar(Convert.ToInt64(this.reserva.datos["ID_ELEM"].ToString()));
                 }
             }
             else
             {
                 //No puedo facturar al faltar algun producto
                 this.CmbCodEsre.SelectedValue = "PST";
                 SISTEMA.MENSAJES.FrmAviso FrmAvi = new LFVBNewTPV.SISTEMA.MENSAJES.FrmAviso("Existen productos sin stock suficiente para ser servidos");
             }
         }
     }
     catch (Exception err)
     {
         if (global::LFVBNewTPV.Properties.Settings.Default.MODO_DEBUG)
         {
             SISTEMA.MENSAJES.FrmError FrmErr = new LFVBNewTPV.SISTEMA.MENSAJES.FrmError(err);
         }
         else
         {
             SISTEMA.MENSAJES.FrmAviso FrmAvi = new LFVBNewTPV.SISTEMA.MENSAJES.FrmAviso(err.Message);
         }
     }
 }