Пример #1
0
        //Planillar
        private void btnPlanillar_Click(object sender, System.EventArgs e)
        {
            #region Validaciones Generales
            ArrayList sqlUpd  = new ArrayList();
            string    errores = "";
            string    viaje;
            string    agencia      = ddlAgencia.SelectedValue.Trim().Replace("|", "");
            string    placa        = txtPlaca.Text.Trim();
            long      numDocumento = 0;
            DateTime  fecha        = Convert.ToDateTime(txtFecha.Text);
            string    conductor    = txtConductor.Text.Trim();
            string    relevador    = txtRelevador.Text.Trim();
            relevador = (relevador.Length == 0)?"NULL":"'" + relevador + "'";
            string rutaP             = ddlRutaPrincipal.SelectedValue;
            string nitPlanillaManual = DBFunctions.SingleData("select mnit_nit from dbxschema.mnit where mnit_nombres='Planilla Manual';");

            //Responsable
            string nitResponsable = DBFunctions.SingleData("select mnit_nit from DBXSCHEMA.susuario where susu_login='******';");
            if (nitResponsable.Length == 0)
            {
                Response.Write("<script language='javascript'>alert('El usuario (responsable) no tiene un NIT asignado.');</script>");
                return;
            }

            //Hora
            int hora = (int.Parse(ddlHora.SelectedValue) * 60) + int.Parse(ddlMinuto.SelectedValue);

            //Afiliado
            string afiliado = DBFunctions.SingleData("SELECT MNIT_ASOCIADO FROM DBXSCHEMA.MBUSAFILIADO WHERE MCAT_PLACA='" + placa + "'");
            afiliado = (afiliado.Length == 0)?"NULL":"'" + afiliado + "'";

            //Configuracion
            string configBus = DBFunctions.SingleData("Select MCON_COD from DBXSCHEMA.MBUSAFILIADO WHERE MCAT_PLACA='" + placa + "';");
            if (configBus.Length == 0)
            {
                configBus = "NULL";
            }

            string planilla = Planillas.TraerSiguientePlanillaVirtual();
            viaje = Viajes.TraerSiguienteViaje(rutaP);
            //Insertar viaje
            sqlUpd.Add("INSERT INTO dbxschema.MVIAJE values('" + rutaP + "'," + viaje + ",'" + fecha.ToString("yyyy-MM-dd") + "'," + hora + ",NULL," + agencia + ",'" + placa + "'," + configBus + ",'" + conductor + "'," + relevador + ",NULL," + afiliado + ",'" + nitResponsable + "'," + hora + ",NULL,NULL,NULL,NULL,NULL,'A',NULL);");

            //Insertar papeleria
            sqlUpd.Add("INSERT INTO DBXSCHEMA.MCONTROL_PAPELERIA  VALUES('PLA'," + planilla + ",'V',0,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',0," + agencia + ",'" + DateTime.Now.ToString("yyyy-MM-dd") + "','" + nitResponsable + "',0,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'" + DateTime.Now.ToString("yyyy-MM-dd") + "');");
            //Insertar planilla
            sqlUpd.Add("insert into dbxschema.mplanillaviaje values(" + planilla + ",'" + rutaP + "'," + viaje + "," + agencia + ",'" + nitResponsable + "','" + fecha.ToString("yyyy-MM-dd") + "',NULL,NULL,NULL,0,0,NULL);");
            #endregion

            //Fila real y actual
            int fila = 1, linea = 1;
            //Totales
            double totalTiquetes = 0, valorSeguro;
            //Seguro
            try
            {
                valorSeguro = Convert.ToDouble(DBFunctions.SingleData("SELECT VALOR_SEGURO FROM DBXSCHEMA.CTRANSPORTES;"));
            }
            catch
            {
                valorSeguro = 0;
            }
            #region Tiquetes
            int prefijo = 0, totalPasajeros = 0;

            //Prefijo tiquetes
            if (ddlAgencia.SelectedValue.EndsWith("|"))
            {
                prefijo = Convert.ToInt16(agencia);
            }

            numDocumento = Convert.ToInt64(Tiquetes.TraerSiguienteTiqueteVirtual());
            foreach (DataGridItem dgrI in dgrTiquetes.Items)
            {
                bool         errLin               = false;
                DropDownList ddlDestino           = (DropDownList)dgrI.FindControl("ddlDestinoTiquete");
                TextBox      txtCantidadTiquete   = (TextBox)dgrI.FindControl("txtCantidadTiquete");
                TextBox      txtValorTiquete      = (TextBox)dgrI.FindControl("txtValorTiquete");
                TextBox      txtTotalTiquete      = (TextBox)dgrI.FindControl("txtTotalTiquete");
                CheckBox     chkAnula             = (CheckBox)dgrI.FindControl("chkAnlulado");
                DropDownList ddlConceptoAnulacion = (DropDownList)dgrI.FindControl("ddlConceptoAnulacion");

                if ((ddlDestino.SelectedValue.Length > 0 || txtCantidadTiquete.Text.Trim().Length > 0 || txtValorTiquete.Text.Trim().Length > 0))
                {
                    int    cantidad = 0;
                    double precio   = 0;
                    bool   anula    = false;
                    string ruta     = ddlDestino.SelectedValue;
                    //Ruta
                    if (ruta.Length == 0)
                    {
                        errores += "Destino de tiquete no válido en la línea " + fila + ". "; errLin = true;
                    }

                    //Cantidad
                    try{
                        cantidad = int.Parse(txtCantidadTiquete.Text.Replace(",", "").Trim());
                    }
                    catch {
                        errores += "Cantidad de tiquetes no válida en la línea " + fila + ". "; errLin = true;
                    }

                    //Precio
                    try{
                        precio = double.Parse(txtValorTiquete.Text.Replace(",", "").Trim());
                        if (precio <= 0)
                        {
                            throw(new Exception());
                        }
                    }
                    catch {
                        errores += "Precio de tiquete no válido en la línea " + fila + ". ";
                        errLin   = true;
                    }

                    //Anulado?
                    if (!errLin && chkAnula.Checked)
                    {
                        if (ddlConceptoAnulacion.SelectedValue.Length == 0)
                        {
                            errores += "Debe seleccionar la causa de la anulacion en la línea " + fila + ". ";
                            errLin   = true;
                        }
                        else
                        {
                            anula = true;
                        }
                    }

                    //Verificar rango precio
                    if (!errLin)
                    {
                        if (!DBFunctions.RecordExist("SELECT MRUT_VALSUG FROM DBXSCHEMA.MRUTAS WHERE MRUT_VALMAX>=" + precio + " AND MRUT_VALMIN<=" + precio + " AND MRUT_CODIGO='" + ruta + "';"))
                        {
                            txtValorTiquete.Text = Convert.ToDouble(DBFunctions.SingleData("SELECT MRUT_VALMAX FROM DBXSCHEMA.MRUTAS WHERE MRUT_CODIGO='" + ruta + "';")).ToString("###,###,##0.##");
                            errores      += "Precio de tiquete fuera del rango válido en la línea " + fila + ", el precio ha sido remplazado. ";
                            strActScript += "totalTicketes('" + txtCantidadTiquete.ClientID + "','" + txtValorTiquete.ClientID + "','" + txtTotalTiquete.ClientID + "',1);";
                            errLin        = true;
                        }
                    }


                    //Insertar tiquete
                    if (!errLin)
                    {
                        sqlUpd.Add("INSERT INTO DBXSCHEMA.MCONTROL_PAPELERIA  VALUES('TIQ'," + numDocumento + ",'V',0,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',0," + agencia + ",'" + DateTime.Now.ToString("yyyy-MM-dd") + "','" + nitResponsable + "',0,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'" + DateTime.Now.ToString("yyyy-MM-dd") + "');");
                        if (anula)
                        {
                            //ANULAR
                            sqlUpd.Add("INSERT INTO dbxschema.mtiquete_viaje values('TIQ'," + numDocumento + "," + planilla + "," + linea + ",'" + ruta + "','" + nitResponsable + "'," + cantidad + ",'" + nitPlanillaManual + "'," + valorSeguro.ToString("0") + "," + precio + "," + precio * cantidad + ",'" + fecha.ToString("yyyy-MM-dd") + "','A');");
                            sqlUpd.Add("INSERT INTO dbxschema.MTIQUETE_VIAJE_ANULADO values('TIQ'," + numDocumento + "," + ddlConceptoAnulacion.SelectedValue + ",'" + fecha.ToString("yyyy-MM-dd") + "','" + nitResponsable + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "');");
                            sqlUpd.Add("UPDATE DBXSCHEMA.MCONTROL_PAPELERIA SET NUM_ANULACION=0, COD_ANULACION=" + ddlConceptoAnulacion.SelectedValue + ",MNIT_ANULACION='" + nitResponsable + "', FECHA_ANULACION='" + DateTime.Now.ToString("yyyy-MM-dd") + "' WHERE TDOC_CODIGO='TIQ' AND NUM_DOCUMENTO=" + numDocumento + ";");
                        }
                        else
                        {
                            sqlUpd.Add("INSERT INTO dbxschema.mtiquete_viaje values('TIQ'," + numDocumento + "," + planilla + "," + linea + ",'" + ruta + "','" + nitResponsable + "'," + cantidad + ",'" + nitPlanillaManual + "'," + valorSeguro.ToString("0") + "," + precio + "," + precio * cantidad + ",'" + fecha.ToString("yyyy-MM-dd") + "','V');");
                            totalTiquetes  += cantidad * precio;
                            totalPasajeros += cantidad;
                        }
                        //Modificar papeleria(usada)
                        sqlUpd.Add("UPDATE DBXSCHEMA.MCONTROL_PAPELERIA SET FECHA_USO='" + DateTime.Now.ToString("yyyy-MM-dd") + "',MPLA_CODIGO=" + planilla + " WHERE TDOC_CODIGO='TIQ' AND NUM_DOCUMENTO=" + numDocumento + ";");
                        dgrI.Cells[0].BackColor = dgrI.Cells[1].BackColor;
                        linea++;
                    }
                    else
                    {
                        dgrI.Cells[0].BackColor = System.Drawing.Color.DarkSalmon;
                        if (errores.Length > 0)
                        {
                            errores += "\\r\\n";
                        }
                    }
                    numDocumento++;
                }
                else
                {
                    dgrI.Cells[0].BackColor = dgrI.Cells[1].BackColor;
                }
                fila++;
            }
            #endregion


            if (errores.Length == 0)
            {
                //Actualizar VIAJE
                sqlUpd.Add("UPDATE dbxschema.MVIAJE SET VALOR_INGRESOS=" + (totalTiquetes) + ", VALOR_EGRESOS=0, ESTADO_VIAJE='T', FECHA_LIQUIDACION='" + fecha.ToString("yyyy-MM-dd") + "' WHERE MRUT_CODIGO='" + rutaP + "' AND MVIAJE_NUMERO=" + viaje + ";");
                //Actualizar PLANILLA: NO. LINEAS, FECHA LIQUID, INGRESOS, EGRESOS, NO. LINEAS
                sqlUpd.Add("UPDATE dbxschema.MPLANILLAVIAJE SET VALOR_INGRESOS=" + (totalTiquetes) + ", VALOR_EGRESOS=0, NUMERO_LINEAS=" + linea + ", FECHA_LIQUIDACION='" + fecha.ToString("yyyy-MM-dd") + "' WHERE MPLA_CODIGO=" + planilla + ";");
                //Actualizar PAPELERIA PLANILLA
                sqlUpd.Add("UPDATE DBXSCHEMA.MCONTROL_PAPELERIA SET FECHA_USO='" + DateTime.Now.ToString("yyyy-MM-dd") + "' WHERE TDOC_CODIGO='PLA' AND NUM_DOCUMENTO=" + planilla + ";");
                if (DBFunctions.Transaction(sqlUpd))
                {
                    Response.Redirect(indexPage + "?process=Comercial.PlanillaBus&path=" + Request.QueryString["path"] + "&pln=" + planilla);
                }
                else
                {
                    lblError.Text = DBFunctions.exceptions;
                }
            }
            else
            {
                strActScript += "alert('" + errores + "');";
            }
        }