Exemplo n.º 1
0
        public double Save(VentaDTO venta)
        {
            double idSalida = 0;

            try
            {
                MaestroParametros mp  = new MaestroParametros();
                ParametrosDTO     par = mp.GetParametro("VentasWeb");
                venta.CodVendedor = par.Valor;

                con.Open();
                SqlCommand cmd = new SqlCommand("INSERT INTO [dbo].[Venta] ([FechaVenta],[RutCliente],[IdCupon],[CodVendedor],[CodEstadoVenta],[CodCondVta],[SubTotal],[Descuento],[PorcDescuento],[TotalDescuento],[Iva],[Total],[NVNumeroSoft],[EstadoSoft],[CodAuxSoft],[NvObserSoft],[IdTipoPago]) " +
                                                "VALUES (@FechaVenta,@RutCliente,@IdCupon,@CodVendedor,@CodEstadoVenta,@CodCondVta,@SubTotal,@Descuento,@PorcDescuento,@TotalDescuento,@Iva,@Total,@NVNumeroSoft,@EstadoSoft,@CodAuxSoft,@NvObserSoft,@IdTipoPago)  SELECT SCOPE_IDENTITY()");
                cmd.CommandType = CommandType.Text;
                cmd.Connection  = con;
                cmd.Parameters.AddWithValue("@FechaVenta", DateTime.Now);
                cmd.Parameters.AddWithValue("@RutCliente", venta.RutCliente);
                cmd.Parameters.AddWithValue("@CodVendedor", venta.CodVendedor);
                cmd.Parameters.AddWithValue("@CodEstadoVenta", venta.CodEstadoVenta);
                cmd.Parameters.AddWithValue("@CodCondVta", venta.CodCondVta);
                cmd.Parameters.AddWithValue("@SubTotal", venta.SubTotal);
                cmd.Parameters.AddWithValue("@Descuento", venta.Descuento);
                cmd.Parameters.AddWithValue("@PorcDescuento", venta.PorcDescuento);
                cmd.Parameters.AddWithValue("@TotalDescuento", venta.TotalDescuento);
                cmd.Parameters.AddWithValue("@Iva", venta.Iva);
                cmd.Parameters.AddWithValue("@Total", venta.Total);
                cmd.Parameters.AddWithValue("@NVNumeroSoft", venta.NVNumeroSoft);
                cmd.Parameters.AddWithValue("@EstadoSoft", venta.EstadoSoft);
                cmd.Parameters.AddWithValue("@CodAuxSoft", venta.CodAuxSoft);
                cmd.Parameters.AddWithValue("@NvObserSoft", venta.NvObserSoft);
                cmd.Parameters.AddWithValue("@IdTipoPago", venta.IdTipoPago);

                if (venta.IdCupon == 0)
                {
                    cmd.Parameters.AddWithValue("@IdCupon", DBNull.Value);
                }
                else
                {
                    cmd.Parameters.AddWithValue("@IdCupon", venta.IdCupon);
                }

                object obj = cmd.ExecuteScalar();
                double id  = Convert.ToDouble(obj);
                idSalida = id;

                foreach (VentaDetalleDTO row in venta.Detalles)
                {
                    SqlCommand cmd2 = new SqlCommand("INSERT INTO [dbo].[VentaDetalle]([IdVenta],[CodProd],[Correlativo],[Cantidad],[Precio],[SubTotal],[Descuento],[Total],[Fecha]) " +
                                                     "VALUES (@IdVenta,@CodProd,@Correlativo,@Cantidad,@Precio,@SubTotal,@Descuento,@Total,@Fecha)");
                    cmd2.CommandType = CommandType.Text;
                    cmd2.Connection  = con;
                    cmd2.Parameters.AddWithValue("@IdVenta", id);
                    cmd2.Parameters.AddWithValue("@CodProd", row.CodProducto);
                    cmd2.Parameters.AddWithValue("@Correlativo", row.Correlativo);
                    cmd2.Parameters.AddWithValue("@Cantidad", row.Cantidad);
                    cmd2.Parameters.AddWithValue("@Precio", row.Precio);
                    cmd2.Parameters.AddWithValue("@SubTotal", row.SubTotal);
                    cmd2.Parameters.AddWithValue("@Descuento", row.Descuento);
                    cmd2.Parameters.AddWithValue("@Total", row.Total);
                    cmd2.Parameters.AddWithValue("@Fecha", DateTime.Now);
                    cmd2.ExecuteNonQuery();
                }

                SqlCommand cmd3 = new SqlCommand("INSERT INTO [dbo].[VentaDespacho]([IdVenta],[IdTipoDespacho],[Direccion],[Numero],[Telefono],[Email],[IdEstadoDespacho],[IdRegion],[CiuCom],[ComCod]) " +
                                                 "VALUES (@IdVenta,@IdTipoDespacho,@Direccion,@Numero,@Telefono,@Email,@IdEstadoDespacho,@IdRegion,@CiuCom,@ComCod)");
                cmd3.CommandType = CommandType.Text;
                cmd3.Connection  = con;
                cmd3.Parameters.AddWithValue("@IdVenta", id);
                cmd3.Parameters.AddWithValue("@IdTipoDespacho", venta.Despacho.IdTipoDespacho);
                cmd3.Parameters.AddWithValue("@Direccion", venta.Despacho.Direccion);
                cmd3.Parameters.AddWithValue("@Numero", venta.Despacho.Numero);
                cmd3.Parameters.AddWithValue("@Telefono", venta.Despacho.Telefono);
                cmd3.Parameters.AddWithValue("@Email", venta.Despacho.Email);
                cmd3.Parameters.AddWithValue("@IdEstadoDespacho", venta.Despacho.IdEstadoDespacho);
                cmd3.Parameters.AddWithValue("@IdRegion", venta.Despacho.IdRegion);
                cmd3.Parameters.AddWithValue("@CiuCom", venta.Despacho.CiuCom);
                cmd3.Parameters.AddWithValue("@ComCod", venta.Despacho.ComCod);
                cmd3.ExecuteNonQuery();

                con.Close();
            }
            catch (Exception ex) { idSalida = -1; }
            finally
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
            }
            return(idSalida);
        }
Exemplo n.º 2
0
        public ResponseInfo Save(ClienteDTO item)
        {
            try
            {
                //valida si el cliente es receptor dte
                item.EsReceptorDTE = "N";
                ClienteDTE cDTE = this.GetClienteDTE(item.Rut.Replace(".", ""));
                if (cDTE != null && cDTE.Rut != null)
                {
                    item.EsReceptorDTE = "S";
                    item.EmailDTE      = cDTE.Mail;
                }

                //recupera el contacto desde softland
                List <ClienteSoftlandDTO> clienteSl = this.GetClientFromSoftland(item.Rut);
                if (clienteSl.Count > 0)
                {
                    item.Contacto = clienteSl[0].NombreContacto;
                }
                else
                {
                    item.Contacto = string.Empty;
                }


                con.Open();
                SqlCommand cmd = new SqlCommand("INSERT INTO [dbo].[Cliente]([Rut],[CodAux],[NomAux],[Email],[Clave],[CodGiro],[CiuCod],[ComCod],[IdRegion],[DirAux],[DirNum],[Telefono],[UserName],[Password],[EmailDTE],[EsReceptorDTE],[Estado],[CodLista],[CodCondVta],[EsJuridico],[Contacto],[EsSoftland]) " +
                                                "VALUES (@Rut,@CodAux,@NomAux,@Email,@Clave,@CodGiro,@CiuCod,@ComCod,@IdRegion,@DirAux,@DirNum,@Telefono,@UserName,@Password,@EmailDTE,@EsReceptorDTE,@Estado,@CodLista,@CodCondVta,@EsJuridico,@Contacto,@EsSoftland)");
                cmd.CommandType = CommandType.Text;
                cmd.Connection  = con;

                string[] aux = item.Rut.Replace(".", "").Split('-');
                item.CodAux = aux[0];

                cmd.Parameters.AddWithValue("@Rut", item.Rut);
                cmd.Parameters.AddWithValue("@CodAux", item.CodAux);
                cmd.Parameters.AddWithValue("@NomAux", item.NomAux);
                cmd.Parameters.AddWithValue("@Email", item.Email);
                cmd.Parameters.AddWithValue("@Clave", item.Clave);
                cmd.Parameters.AddWithValue("@CiuCod", item.CiuCod);
                cmd.Parameters.AddWithValue("@ComCod", item.ComCod);
                cmd.Parameters.AddWithValue("@IdRegion", item.IdRegion);
                cmd.Parameters.AddWithValue("@DirAux", item.DirAux);
                cmd.Parameters.AddWithValue("@DirNum", item.DirNum);
                cmd.Parameters.AddWithValue("@Telefono", item.Telefono);
                cmd.Parameters.AddWithValue("@UserName", item.UserName);
                cmd.Parameters.AddWithValue("@Password", item.Password);
                cmd.Parameters.AddWithValue("@Estado", item.Estado);
                cmd.Parameters.AddWithValue("@EsJuridico", item.EsJuridico);
                cmd.Parameters.AddWithValue("@EmailDTE", item.EmailDTE);
                cmd.Parameters.AddWithValue("@EsReceptorDTE", item.EsReceptorDTE);
                cmd.Parameters.AddWithValue("@Contacto", item.Contacto);
                cmd.Parameters.AddWithValue("@EsSoftland", (item.ExisteEnSoftland == true) ? 1 : 0);

                MaestroParametros mp = new MaestroParametros();
                ParametrosDTO     p1 = mp.GetParametro("ListaPreciosDefecto");
                ParametrosDTO     p2 = mp.GetParametro("CondicionPagoDefecto");
                ParametrosDTO     p3 = mp.GetParametro("GiroParticular");

                if (!item.ExisteEnSoftland)
                {
                    cmd.Parameters.AddWithValue("@CodLista", p1.Valor);
                    cmd.Parameters.AddWithValue("@CodCondVta", p2.Valor);
                    cmd.Parameters.AddWithValue("@CodGiro", p3.Valor);

                    item.CodLista   = p1.Valor;
                    item.CodCondVta = p2.Valor;
                    item.CodGiro    = p3.Valor;
                }
                else
                {
                    string codLista   = this.GetListaClienteSoftland(item.Rut);
                    string codCondVta = this.GetCondVentaClienteSoftland(item.Rut);

                    cmd.Parameters.AddWithValue("@CodLista", (codLista.Trim() == "") ? p1.Valor : codLista);
                    cmd.Parameters.AddWithValue("@CodCondVta", (codCondVta.Trim() == "") ? p2.Valor : codCondVta);
                    cmd.Parameters.AddWithValue("@CodGiro", item.CodGiro);
                }

                cmd.ExecuteNonQuery();
                con.Close();

                if (!item.ExisteEnSoftland)
                {
                    ResponseInfo s1 = this.SaveClienteSoftland(item);

                    ClienteContactoDTO cc = new ClienteContactoDTO
                    {
                        CodAuc     = item.CodAux,
                        NomCon     = item.NomAux,
                        CarCon     = "02",
                        FonCon     = item.Telefono,
                        FonCon2    = "",
                        FonCon3    = "",
                        Email      = item.Email,
                        Usuario    = null,
                        Proceso    = null,
                        FechaUlMod = DateTime.Now
                    };

                    ResponseInfo s2 = this.SaveContactoClienteSoftland(cc);

                    ClienteCondVtaListPreciosDTO clp = new ClienteCondVtaListPreciosDTO
                    {
                        CodAux     = item.CodAux,
                        CodVen     = "07",
                        ConVta     = item.CodCondVta,
                        MtoCre     = 0,
                        CatCli     = "03",
                        CodZon     = null,
                        CodCan     = "03",
                        CodCob     = null,
                        DirCob     = null,
                        ComCob     = null,
                        CiuCob     = null,
                        PaiCob     = null,
                        FonCob     = item.Telefono,
                        DiaPag     = null,
                        CodLista   = item.CodLista,
                        Usuario    = "WEB",
                        Proceso    = "Ficha Cliente ERP",
                        FechaUlMod = DateTime.Now,
                        Sistema    = null
                    };

                    ResponseInfo s3 = this.SaveCondVtaListPreciosSoftland(clp);
                }

                return(ResponseInfo.CreateSuccess());
            }
            catch (Exception ex) { return(ResponseInfo.CreateError("Error al grabar. " + ex.Message)); }
        }