Beispiel #1
0
        string Luu_Chi_Tiet(Data_QLKDataContext database, long chungTuId)
        {
            var  result = "OK";
            var  dt     = dsXuatKho.CHUNG_TU_CHI_TIET;
            long id     = 0;
            var  row    = 0;

            for (var i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i].RowState != DataRowState.Deleted)
                {
                    row++;

                    if (dt.Rows[i]["Ma_Hang_Hoa"] == DBNull.Value)
                    {
                        MessageBox.Show("Vui lòng chọn mặt hàng.", "Thông báo",
                                        MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        result = "Chưa chọn mặt hàng";
                        gbList.FocusedRowHandle = row;
                        gbList.SetColumnError(colMa_Hang_Hoa, "Chưa chọn mặt hàng");
                        return(result);
                    }

                    if (dt.Rows[i]["Ma_Kho_Hang"] == DBNull.Value)
                    {
                        MessageBox.Show("Chưa chọn kho hàng.", "Thông báo",
                                        MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        result = "Chưa chọn kho hàng";
                        gbList.FocusedRowHandle = row;
                        gbList.SetColumnError(colMa_Kho_Hang, "Chưa chọn kho hàng");
                        return(result);
                    }

                    id = Convert.ToInt64(dt.Rows[i]["Ma_Chi_Tiet"]);
                }
                var dr = dt.Rows[i];
                switch (dr.RowState)
                {
                case DataRowState.Added:

                    var chung_tu_chi_tiet = new CHUNG_TU_CHI_TIET
                    {
                        Chung_Tu_Id   = chungTuId,
                        Ma_Hang_Hoa   = dt.Rows[i]["Ma_Hang_Hoa"].ToString(),
                        Loai_Chung_Tu = 2,     //1 nhap kho 2 xuat kho
                        Tinh_Trang    = false, //true nhap kho false xuat kho
                        Ma_Kho_Hang   = dt.Rows[i]["Ma_Kho_Hang"].ToString(),
                        So_Luong      = Convert.ToDecimal(dt.Rows[i]["So_Luong"]),
                        Don_Gia       = Convert.ToDecimal(dt.Rows[i]["Don_Gia"]),
                        Thanh_Tien    = Convert.ToDecimal(dt.Rows[i]["Thanh_Tien"]),
                        Ghi_Chu       = dt.Rows[i]["Ghi_Chu"].ToString(),
                        So_Thu_Tu     = 0
                    };
                    database.CHUNG_TU_CHI_TIETs.InsertOnSubmit(chung_tu_chi_tiet);

                    break;

                case DataRowState.Modified:

                    var chi_tiet_sua = (from ctct in database.CHUNG_TU_CHI_TIETs
                                        where ctct.Id == id
                                        select ctct).FirstOrDefault();

                    //chi_tiet_sua.Ma_Chi_Tiet = new Guid(id);
                    chi_tiet_sua.Chung_Tu_Id   = chungTuId;
                    chi_tiet_sua.Ma_Hang_Hoa   = dt.Rows[i]["Ma_Hang_Hoa"].ToString();
                    chi_tiet_sua.Loai_Chung_Tu = 2;     //1 nhap kho 2 xuat kho
                    chi_tiet_sua.Tinh_Trang    = false; //true nhap kho false xuat kho
                    chi_tiet_sua.Ma_Kho_Hang   = dt.Rows[i]["Ma_Kho_Hang"].ToString();
                    chi_tiet_sua.So_Luong      = Convert.ToDecimal(dt.Rows[i]["So_Luong"]);
                    chi_tiet_sua.Don_Gia       = Convert.ToDecimal(dt.Rows[i]["Don_Gia"]);
                    chi_tiet_sua.Thanh_Tien    = Convert.ToDecimal(dt.Rows[i]["Thanh_Tien"]);
                    chi_tiet_sua.Ghi_Chu       = dt.Rows[i]["Ghi_Chu"].ToString();
                    chi_tiet_sua.So_Thu_Tu     = 0;
                    break;

                case DataRowState.Deleted:
                    var chi_tiet_xoa = (from ctct in database.CHUNG_TU_CHI_TIETs
                                        where ctct.Id == id
                                        select ctct).FirstOrDefault();
                    database.CHUNG_TU_CHI_TIETs.DeleteOnSubmit(chi_tiet_xoa);
                    break;
                }
                database.SubmitChanges();
            }
            return(result);
        }
Beispiel #2
0
        string Luu_Chi_Tiet(Data_QLKDataContext database, long chungTuId)
        {
            var  result = "OK";
            var  dt     = dsNhapVatTu.CHUNG_TU_CHI_TIET;
            long id     = 0;
            var  row    = 0;
            CalulateInventory calulateInventory = new CalulateInventory();

            long    vatTuId    = 0;
            long    khoNhap    = 0;
            long    khoXuat    = 0;
            decimal soLuong    = 0;
            string  loVatTu    = "";
            string  serialNo   = "";
            decimal orgSoLuong = 0;

            for (var i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i].RowState != DataRowState.Deleted)
                {
                    row++;

                    if (dt.Rows[i]["Hang_Hoa_Id"] == DBNull.Value || Convert.ToInt64(dt.Rows[i]["Hang_Hoa_Id"]) == 0)
                    {
                        MessageBox.Show(this, String.Format("Dòng {0}: Vui lòng chọn mặt hàng.", row.ToString()), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        result = "Chưa chọn mặt hàng";
                        gbList.FocusedRowHandle = row;
                        gbList.SetColumnError(colMa_Hang_Hoa, "Chưa chọn mặt hàng");
                        return(result);
                    }

                    if (dt.Rows[i]["Kho_Hang_Id"] == DBNull.Value || Convert.ToInt64(dt.Rows[i]["Kho_Hang_Id"]) == 0)
                    {
                        MessageBox.Show(this, String.Format("Dòng {0}: Vui lòng chọn kho hàng.", row.ToString()), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        result = "Chưa chọn kho hàng";
                        gbList.FocusedRowHandle = row;
                        gbList.SetColumnError(colMa_Kho_Hang, "Chưa chọn kho hàng");
                        return(result);
                    }

                    id = Convert.ToInt64(dt.Rows[i]["Id"]);
                }
                var dr = dt.Rows[i];
                switch (dr.RowState)
                {
                case DataRowState.Added:

                    var chi_tiet_them = new CHUNG_TU_CHI_TIET();

                    chi_tiet_them.Chung_Tu_Id   = chungTuId;
                    chi_tiet_them.Hang_Hoa_Id   = Convert.ToInt64(dt.Rows[i]["Hang_Hoa_Id"]);
                    chi_tiet_them.Ma_Hang_Hoa   = dt.Rows[i]["Ma_Hang_Hoa"].ToString();
                    chi_tiet_them.Ten_Hang_Hoa  = dt.Rows[i]["Ten_Hang_Hoa"].ToString();
                    chi_tiet_them.Loai_Chung_Tu = this.loai; //1 nhap kho 2 xuat kho

                    chi_tiet_them.Tinh_Trang  = true;        //true nhap kho false xuat kho
                    chi_tiet_them.Kho_Hang_Id = Convert.ToInt64(dt.Rows[i]["Kho_Hang_Id"]);
                    chi_tiet_them.Ma_Kho_Hang = dt.Rows[i]["Ma_Kho_Hang"].ToString();
                    chi_tiet_them.So_Luong    = Convert.ToDecimal(dt.Rows[i]["So_Luong"]);
                    chi_tiet_them.Ghi_Chu     = dt.Rows[i]["Ghi_Chu"].ToString();

                    chi_tiet_them.Serial_No     = dt.Rows[i]["Serial_No"].ToString();
                    chi_tiet_them.Lo_Vat_Tu     = dt.Rows[i]["Lo_Vat_Tu"].ToString();
                    chi_tiet_them.Don_Vi        = dt.Rows[i]["Don_Vi"].ToString();
                    chi_tiet_them.Nhan_Vien_Id  = Convert.ToInt64(dt.Rows[i]["Nhan_Vien_Id"] == DBNull.Value ? 0 : dt.Rows[i]["Nhan_Vien_Id"]);
                    chi_tiet_them.Khach_Hang_Id = Convert.ToInt64(dt.Rows[i]["Khach_Hang_Id"] == DBNull.Value ? 0 : dt.Rows[i]["Khach_Hang_Id"]);

                    chi_tiet_them.So_Thu_Tu   = i;
                    chi_tiet_them.CreatedDate = DateTime.Now;

                    database.CHUNG_TU_CHI_TIETs.InsertOnSubmit(chi_tiet_them);

                    if (this.loai == 1)
                    {
                        khoNhap = chi_tiet_them.Kho_Hang_Id.Value;
                    }
                    else
                    {
                        khoXuat = chi_tiet_them.Kho_Hang_Id.Value;
                    }
                    vatTuId  = chi_tiet_them.Hang_Hoa_Id.Value;
                    soLuong  = chi_tiet_them.So_Luong.Value;
                    loVatTu  = chi_tiet_them.Lo_Vat_Tu;
                    serialNo = chi_tiet_them.Serial_No;


                    break;

                case DataRowState.Modified:

                    var chi_tiet_sua = (from ctct in database.CHUNG_TU_CHI_TIETs
                                        where ctct.Id == id
                                        select ctct).FirstOrDefault();

                    chi_tiet_sua.Chung_Tu_Id   = chungTuId;
                    chi_tiet_sua.Hang_Hoa_Id   = Convert.ToInt64(dt.Rows[i]["Hang_Hoa_Id"]);
                    chi_tiet_sua.Ma_Hang_Hoa   = dt.Rows[i]["Ma_Hang_Hoa"].ToString();
                    chi_tiet_sua.Ten_Hang_Hoa  = dt.Rows[i]["Ma_Hang_Hoa"].ToString();
                    chi_tiet_sua.Loai_Chung_Tu = this.loai; //1 nhap kho 2 xuat kho

                    chi_tiet_sua.Tinh_Trang  = true;        //true nhap kho false xuat kho
                    chi_tiet_sua.Kho_Hang_Id = Convert.ToInt64(dt.Rows[i]["Kho_Hang_Id"]);
                    chi_tiet_sua.Ma_Kho_Hang = dt.Rows[i]["Ma_Kho_Hang"].ToString();
                    chi_tiet_sua.So_Luong    = Convert.ToDecimal(dt.Rows[i]["So_Luong"]);
                    chi_tiet_sua.Ghi_Chu     = dt.Rows[i]["Ghi_Chu"].ToString();

                    chi_tiet_sua.Serial_No     = dt.Rows[i]["Serial_No"].ToString();
                    chi_tiet_sua.Lo_Vat_Tu     = dt.Rows[i]["Lo_Vat_Tu"].ToString();
                    chi_tiet_sua.Don_Vi        = dt.Rows[i]["Don_Vi"].ToString();
                    chi_tiet_sua.Nhan_Vien_Id  = Convert.ToInt64(dt.Rows[i]["Nhan_Vien_Id"] == DBNull.Value ? 0 : dt.Rows[i]["Nhan_Vien_Id"]);
                    chi_tiet_sua.Khach_Hang_Id = Convert.ToInt64(dt.Rows[i]["Khach_Hang_Id"] == DBNull.Value ? 0 : dt.Rows[i]["Khach_Hang_Id"]);

                    chi_tiet_sua.So_Thu_Tu    = i;
                    chi_tiet_sua.ModifiedDate = DateTime.Now;

                    orgSoLuong = Convert.ToDecimal(dt.Rows[i]["So_Luong", DataRowVersion.Original]);

                    if (this.loai == 1)
                    {
                        khoNhap = chi_tiet_sua.Kho_Hang_Id.Value;
                    }
                    else
                    {
                        khoXuat = chi_tiet_sua.Kho_Hang_Id.Value;
                    }
                    vatTuId  = chi_tiet_sua.Hang_Hoa_Id.Value;
                    soLuong  = chi_tiet_sua.So_Luong.Value - orgSoLuong;
                    loVatTu  = chi_tiet_sua.Lo_Vat_Tu;
                    serialNo = chi_tiet_sua.Serial_No;

                    break;

                case DataRowState.Deleted:
                    var idDetail     = Convert.ToInt64(dt.Rows[i]["Id", DataRowVersion.Original]); //dt.Rows[i]["Ma_Chi_Tiet", DataRowVersion.Original];
                    var chi_tiet_xoa = (from ctct in database.CHUNG_TU_CHI_TIETs
                                        where ctct.Id == idDetail
                                        select ctct).FirstOrDefault();
                    chi_tiet_xoa.IsDeleted     = true;
                    chi_tiet_xoa.DeletetedDate = DateTime.Now;

                    orgSoLuong = Convert.ToDecimal(dt.Rows[i]["So_Luong", DataRowVersion.Original]);

                    if (this.loai == 1)
                    {
                        khoNhap = chi_tiet_xoa.Kho_Hang_Id.Value;
                    }
                    else
                    {
                        khoXuat = chi_tiet_xoa.Kho_Hang_Id.Value;
                    }
                    vatTuId  = chi_tiet_xoa.Hang_Hoa_Id.Value;
                    soLuong  = chi_tiet_xoa.So_Luong.Value - orgSoLuong;
                    loVatTu  = chi_tiet_xoa.Lo_Vat_Tu;
                    serialNo = chi_tiet_xoa.Serial_No;
                    //database.CHUNG_TU_CHI_TIETs.DeleteOnSubmit(chi_tiet_xoa);
                    break;
                }
                database.SubmitChanges();
                calulateInventory.ProcessCalculate(database, soLuong, vatTuId, loVatTu, serialNo, khoNhap, khoXuat);
            }
            return(result);
        }