private void ProcesarInventario(ref Funciones fn, tblcertifdet det)
        {
            string Kardex = "select ConsumoAutomatico from tblPlaguicida where idPais='" + det.idpais + "' and plaguicida='" + det.Plaguicida + "'";
            string valido = fn.EjecutarScalarString(Kardex);

            if (valido.ToLower() == "true" && det.Plaguicida.Trim() != "")
            {
                decimal Exitencia = (decimal)fn.Plaguicida_Existencia(det.Plaguicida, det.Puesto, det.idpais);
                if (Exitencia < det.Real)
                {
                    throw new Exception("Imposible finalizar operacion, existencias insuficientes.");
                }
                else
                {
                    decimal nExistencia = Exitencia - det.Real;
                    string  id          = this.Encabezado.Fecha.Year.ToString() + this.Encabezado.Fecha.Month.ToString() + this.Encabezado.Fecha.Day.ToString();
                    id = id + "-" + fn.Recuperar_Correlativo(det.idpais, det.Puesto, "IdKardex").ToString();
                    string Sql   = "select Costo from tblPlaguicida where idPais='" + det.idpais + "' and plaguicida='" + det.Plaguicida + "'";
                    Double costo = fn.EjecutarScalarDouble(Sql);
                    Sql = "insert into tblInvKardex (Puesto,id,Plaguicida,Existencia,Egreso,Ingreso,NuevaExistencia,Responsable,Fecha,Procesado,Replicado,Concepto,Certificados,Costo,FechaDigitacion,idDetFum,[Session],idPais)";
                    Sql = Sql + "values(@Puesto,@id,@Plaguicida,@Existencia,@Egreso,@Ingreso,@NuevaExistencia,@Responsable,@Fecha,@Procesado,@Replicado,@Concepto,@Certificados,@Costo,@FechaDigitacion,@idDetFum,@Session,@idPais)";
                    SqlCommand cm = new SqlCommand(Sql, fn._LocalC, fn._tr);
                    cm.Parameters.AddWithValue("@Puesto", det.Puesto);
                    cm.Parameters.AddWithValue("@id", id);
                    cm.Parameters.AddWithValue("@Plaguicida", det.Plaguicida);
                    cm.Parameters.AddWithValue("@Existencia", Exitencia);
                    cm.Parameters.AddWithValue("@Egreso", det.Real);
                    cm.Parameters.AddWithValue("@Ingreso", 0);
                    cm.Parameters.AddWithValue("@NuevaExistencia", nExistencia);
                    cm.Parameters.AddWithValue("@Responsable", HttpContext.Current.Session["login"]);
                    cm.Parameters.AddWithValue("@Fecha", this.Encabezado.Fecha);
                    cm.Parameters.AddWithValue("@Procesado", 1);
                    cm.Parameters.AddWithValue("@Replicado", 0);
                    cm.Parameters.AddWithValue("@Concepto", string.Format("Consumo automatico por fumigaciĆ³n [NCertificado:{0}]", det.Ncertificado));
                    cm.Parameters.AddWithValue("@Certificados", det.Ncertificado);
                    cm.Parameters.AddWithValue("@Costo", costo);
                    cm.Parameters.AddWithValue("@FechaDigitacion", DateTime.Now);
                    cm.Parameters.AddWithValue("@idDetFum", det.Detalle);
                    cm.Parameters.AddWithValue("@Session", HttpContext.Current.Session["session"]);
                    cm.Parameters.AddWithValue("@idPais", det.idpais);
                    cm.ExecuteNonQuery();
                    fn.Incrementar_Correlativo(det.idpais, det.Puesto, "IdKardex");
                    Sql = "update tblInvExistencia set Existencia=@Existencia where Plaguicida=@Plaguicida and Puesto=@Puesto and idPais=@IdPais";
                    SqlCommand cmExistencia = new SqlCommand(Sql, fn._LocalC, fn._tr);
                    cmExistencia.Parameters.AddWithValue("@Existencia", nExistencia);
                    cmExistencia.Parameters.AddWithValue("@Plaguicida", det.Plaguicida);
                    cmExistencia.Parameters.AddWithValue("@Puesto", det.Puesto);
                    cmExistencia.Parameters.AddWithValue("@IdPais", det.idpais);
                    cmExistencia.ExecuteNonQuery();
                }
            }
        }
Example #2
0
    public string GenerarCertificado(int IdPagoOrdenCIEX)
    {
        Funciones     fn              = new Funciones();
        String        Response        = "Testing";
        String        QueryEncabezado = "SELECT id,Puesto,NCertificado,Fecha,Cambio,Cortesia,Local_,Total,TotalString,Observacion,Responsable,Anulado,Remesado,Replicado,NEnd,TipoCertificado,TipoCliente,ClienteExtra,Cliente,Vapor,NAduana,Placa,Impuesto,IDCCaja,ADelDia,EnviaPlat,FechaTrat,FechaTrat_Fin,Credito,NOrden,FOrden,fPagoCiex,Estado,AOrden,Cuarentena,IDFactura,NViaje,FechaAtraque,idPais,Ingles,Operador,CompFiscal,NoCompFiscal,PlacaDos,NumeroBL,MigradoGP,NOrdenCiex,NCompranteCiex FROM tblOrdenPagoCiex where id = " + IdPagoOrdenCIEX;
        String        QueryDetalle    = "SELECT id,idOrdenCiex,Puesto,NCertificado,Servicio,Cantidad,US,Local,SubTotal,Plaguicida,Dosis,UD,Plaguicida2,Dosis2,UD2,Real,Producto,Ruta,TipoAvion,Procedencia,Destino,NVuelo,TiempoExposicion,UT,Razon,NActa,DB,Session,CantVol,UC,EnviaPlat,CantidadCubicada,Teorico,Densidad,Contenedor,Silo,LugTrat,Concentracion,Temperatura,TiempoAereacion,UT_Aereacion,Origen,idPais,MatriculaAvion,Descripcion FROM tblOrdenPagoCiexDetalle WHERE idOrdenCiex = " + IdPagoOrdenCIEX;
        SqlConnection Conn            = fn.ConnectionSql();

        SITC.Certificado.CertificadosTransaction tr = new SITC.Certificado.CertificadosTransaction();
        SITC.Certificado.tblcertif Encabezado       = new SITC.Certificado.tblcertif();
        String ncertificado = "";

        try
        {
            SqlCommand    cmSQL  = new SqlCommand(QueryEncabezado, Conn);
            SqlDataReader reader = cmSQL.ExecuteReader();
            while (reader.Read())
            {
                String idPais   = reader["idPais"].ToString();
                String idPuesto = reader["Puesto"].ToString();
                ncertificado = (fn.Recuperar_CorrelativoC(idPais, idPuesto, "NCertificado"));

                if (ncertificado == "0")
                {
                    throw new Exception("Correlativo no definido! Informar al Depto. de Informatica de OIRSA Sede");
                }

                Encabezado.Ncertificado = ncertificado;
                Encabezado.Puesto       = idPuesto;
                Encabezado.idpais       = idPais;
                if (!"".Equals(reader["Fecha"].ToString()))
                {
                    Encabezado.Fecha = Convert.ToDateTime(reader["Fecha"].ToString());
                }
                Encabezado.Responsable     = reader["Responsable"].ToString();
                Encabezado.Cambio          = Convert.ToDecimal(reader["Cambio"].ToString());
                Encabezado.Cortesia        = Convert.ToBoolean(reader["Cortesia"].ToString());
                Encabezado.Local           = Convert.ToBoolean(reader["Local_"].ToString());
                Encabezado.Total           = Convert.ToDecimal(reader["Total"].ToString());
                Encabezado.Totalstring     = reader["TotalString"].ToString();
                Encabezado.Observacion     = reader["Observacion"].ToString();
                Encabezado.Anulado         = Convert.ToBoolean(reader["Anulado"].ToString());
                Encabezado.Remesado        = Convert.ToBoolean(reader["Remesado"].ToString());
                Encabezado.Replicado       = Convert.ToBoolean(reader["Replicado"].ToString());
                Encabezado.Nend            = Convert.ToBoolean(reader["NEnd"].ToString());
                Encabezado.Tipocertificado = reader["TipoCertificado"].ToString();
                Encabezado.Tipocliente     = reader["TipoCliente"].ToString();
                Encabezado.Clienteextra    = reader["ClienteExtra"].ToString();
                Encabezado.Cliente         = reader["Cliente"].ToString();
                Encabezado.Vapor           = reader["Vapor"].ToString();
                Encabezado.Naduana         = reader["NAduana"].ToString();
                Encabezado.Placa           = reader["Placa"].ToString();
                Encabezado.Impuesto        = Convert.ToDecimal(reader["Impuesto"].ToString());
                if (!"".Equals(reader["IDCCaja"].ToString()))
                {
                    Encabezado.Idccaja = Convert.ToInt32(reader["IDCCaja"].ToString());
                }
                Encabezado.Adeldia   = Convert.ToBoolean(reader["ADelDia"].ToString());
                Encabezado.Enviaplat = Convert.ToBoolean(reader["EnviaPlat"].ToString());
                if (!"".Equals(reader["FechaTrat"].ToString()))
                {
                    Encabezado.Fechatrat = Convert.ToDateTime(reader["FechaTrat"].ToString());
                }
                if (!"".Equals(reader["FechaTrat_Fin"].ToString()))
                {
                    Encabezado.FechatratFin = Convert.ToDateTime(reader["FechaTrat_Fin"].ToString());
                }
                Encabezado.Credito = Convert.ToBoolean(reader["Credito"].ToString());
                Encabezado.Norden  = reader["NOrden"].ToString();
                if (!"".Equals(reader["FOrden"].ToString()))
                {
                    Encabezado.Forden = Convert.ToDateTime(reader["FOrden"].ToString());
                }
                Encabezado.Aorden     = reader["AOrden"].ToString();
                Encabezado.Cuarentena = reader["Cuarentena"].ToString();
                //
                Encabezado.Idfactura = reader["IDFactura"].ToString();
                Encabezado.Nviaje    = reader["NViaje"].ToString();
                if (!"".Equals(reader["FechaAtraque"].ToString()))
                {
                    Encabezado.Fechaatraque = Convert.ToDateTime(reader["FechaAtraque"].ToString());
                }
                Encabezado.Ingles   = Convert.ToBoolean(reader["Ingles"].ToString());
                Encabezado.PlacaDos = reader["PlacaDos"].ToString();
                Encabezado.NumeroBL = reader["NumeroBL"].ToString();

                //id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,fPagoCiex,Estado,,,,,,,,Operador,CompFiscal,NoCompFiscal,,,MigradoGP,NOrdenCiex,NCompranteCiex FROM tblOrdenPagoCiex
                tr.Encabezado = Encabezado;
            }

            SqlCommand     cmDetSQL = new SqlCommand(QueryDetalle, Conn);
            SqlDataAdapter da       = new SqlDataAdapter(cmDetSQL);
            DataTable      dt       = new DataTable();
            da.Fill(dt);

            //se crea vector con la cantidad de registros a guardar.
            int CantidadRegistros = dt.Rows.Count;
            SITC.Certificado.tblcertifdet[] dets = new SITC.Certificado.tblcertifdet[CantidadRegistros];

            int Index = 0;
            foreach (DataRow row in dt.Rows)
            {
                SITC.Certificado.tblcertifdet Det = new SITC.Certificado.tblcertifdet();
                //Det.Contenedor = "Contenedor de Prueb c#";

                Det.Puesto       = row["Puesto"].ToString();
                Det.Ncertificado = ncertificado;
                Det.Servicio     = row["Servicio"].ToString();
                Det.Cantidad     = (float)Convert.ToDouble(row["Cantidad"].ToString());
                Det.Us           = Convert.ToDecimal(row["US"].ToString());
                Det.Local        = Convert.ToDecimal(row["Local"].ToString());
                Det.Subtotal     = Convert.ToDecimal(row["SubTotal"].ToString());
                Det.Plaguicida   = row["Plaguicida"].ToString();
                Det.Dosis        = Convert.ToDecimal(row["Dosis"].ToString());
                Det.Ud           = row["UD"].ToString();
                Det.Plaguicida2  = row["Plaguicida2"].ToString();
                if (!"".Equals(row["Dosis2"].ToString()))
                {
                    Det.Dosis2 = Convert.ToDecimal(row["Dosis2"].ToString());
                }
                Det.Ud2              = row["UD2"].ToString();
                Det.Real             = Convert.ToDecimal(row["Real"].ToString());
                Det.Producto         = Convert.ToInt32(row["Producto"].ToString());
                Det.Ruta             = row["Ruta"].ToString();
                Det.Tipoavion        = row["TipoAvion"].ToString();
                Det.Procedencia      = row["Procedencia"].ToString();
                Det.Destino          = row["Destino"].ToString();
                Det.Nvuelo           = row["NVuelo"].ToString();
                Det.Tiempoexposicion = Convert.ToDecimal(row["TiempoExposicion"].ToString());
                Det.Ut               = row["UT"].ToString();
                Det.Razon            = row["Razon"].ToString();
                Det.Nacta            = row["NActa"].ToString();
                Det.Db               = Convert.ToBoolean(row["DB"].ToString());
                Det.Session          = row["Session"].ToString();
                Det.Cantvol          = Convert.ToDecimal(row["CantVol"].ToString());
                Det.Uc               = row["UC"].ToString();
                Det.Enviaplat        = Convert.ToBoolean(row["EnviaPlat"].ToString());
                Det.Cantidadcubicada = Convert.ToDecimal(row["CantidadCubicada"].ToString());
                Det.Teorico          = Convert.ToDecimal(row["Teorico"].ToString());
                Det.Densidad         = row["Densidad"].ToString();
                Det.Contenedor       = row["Contenedor"].ToString();
                Det.Silo             = row["Silo"].ToString();
                Det.Lugtrat          = row["LugTrat"].ToString();
                //
                Det.Concentracion   = row["Concentracion"].ToString();
                Det.Temperatura     = (float)Convert.ToDouble(row["Temperatura"].ToString());
                Det.Tiempoaereacion = Convert.ToDecimal(row["TiempoAereacion"].ToString());
                Det.UtAereacion     = row["UT_Aereacion"].ToString();
                Det.Origen          = row["Origen"].ToString();
                Det.idpais          = row["idPais"].ToString();
                Det.MatriculaAvion  = row["MatriculaAvion"].ToString();
                //id,idOrdenCiex,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Descripcion

                dets[Index] = Det;
                Index++;
            }

            tr.Detalle = dets;

            String UpdateEncabezado = "UPDATE tblOrdenPagoCiex SET NCertificado='" + ncertificado + "',Estado='PROCESADO' WHERE ID = " + IdPagoOrdenCIEX;
            String UpdateDetalle    = "UPDATE tblOrdenPagoCiexDetalle SET NCertificado='" + ncertificado + "' WHERE idOrdenCiex = " + IdPagoOrdenCIEX;

            tr.GuardarCIEX(UpdateEncabezado, UpdateDetalle);
        }
        catch (SqlException sqlex)
        {
            throw new Exception("Error: " + sqlex, sqlex);
        }
        catch (Exception e)
        {
            throw new Exception("Error: " + e, e);
        }
        finally
        {
            Conn.Close();
        }

        return(Response);
    }